Ich bin es gewohnt, mit C# zu codieren, und manchmal erstelle ich Transaktionen, die mehr als einen Aufruf an verschiedene Repositorys haben, und wenn ein Aufruf fehlschlägt, das Rollback umfasst jedes Repository.node.js: Erstellen einer Transaktion, die Aufrufe an mehr als ein Repository abdeckt
Der Code ist wie folgt:
using (var scope = new TransactionScope())
{
itemRepository.deleteItems(items);
bookRepository.deleteBooks(books);
scope.Complete();
}
Dies stellt sicher, dass, wenn ein Fehler auf bookRepository auftritt, werden die gelöschten Elemente auf der Rollback sein.
Jetzt versuche ich das gleiche mit node.js zu tun. Ich fand das mssql-Paket, das die Möglichkeit hat, Transaktionen zu schaffen, sondern nur innerhalb des Repository, wie folgt aus:
var transaction = new sql.Transaction(/* [connection] */);
transaction.begin(function(err) {
// ... error checks
var request = new sql.Request(transaction);
request.query('insert into mytable (mycolumn) values (12345)', function(err, recordset) {
// ... error checks
transaction.commit(function(err, recordset) {
// ... error checks
console.log("Transaction committed.");
});
});
});
es so, dann ist eine Möglichkeit, eine Transaktion auf dem Dienst zu erstellen, die mehr als ein Repository wie ich bedeckt beschrieben?
Ich suche eine ähnliche Antwort für mysql + node –