したがって、nodejs sqliteライブラリ(https://github.com/mapbox/node-sqlite3)を使用すると、db.serialize関数を使用してsqlトランザクションをシリアル化できます。この関数内のすべての実行は、指定された順序で実行されます。 しかし、forループを使用すると、トランザクションに関する情報をどのように取得して成功または失敗にすることができますか?nodejsのSqliteトランザクション
function transaction(callback) {
db.serialize(function() {
db.run("BEGIN");
for(...) {
db.run("INSERT", function(err) {
//this code is not serialized with the parent serialize function (this is my problem)
//if one run throw error i must resolve the callback with the error code
if (err)
callback("error");
});
}
db.run("END");
callback("ok");
}
}
ありがとう:)あなたの解決策の問題は、1つの接続に対して1つのスレッドだけが関数を呼び出すことができます。それ以外の場合、「トランザクションのトランザクションエラー」が発生します。 – user2957271