node.js-sqlite3读取表中的所有记录并返回

我正在尝试读取sqlite3表中的所有记录,并通过回调返回它们。但是似乎尽管使用了序列化,但这些调用仍然是ASYNC。这是我的代码:

var readRecordsFromMediaTable = function(callback){

var db = new sqlite3.Database(file, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE);

var allRecords = [];

db.serialize(function() {

db.each("SELECT * FROM MediaTable", function(err, row) {

myLib.generateLog(levelDebug, util.inspect(row));

allRecords.push(row);

}

callback(allRecords);

db.close();

});

}

触发回调后,数组将打印“ []”。

我是否可以打另一个电话(而不是db.each),一次就能给我所有行。我不需要遍历这里的每一行。

如果没有,如何读取所有记录,然后才调用带有结果的回调?

回答:

我能够找到这个问题的答案。这是给任何正在寻找的人的:

var sqlite3 = require("sqlite3").verbose();

var readRecordsFromMediaTable = function(callback){

var db = new sqlite3.Database(file, sqlite3.OPEN_READONLY);

db.serialize(function() {

db.all("SELECT * FROM MediaTable", function(err, allRows) {

if(err != null){

console.log(err);

callback(err);

}

console.log(util.inspect(allRows));

callback(allRows);

db.close();

});

});

}

以上是 node.js-sqlite3读取表中的所有记录并返回 的全部内容, 来源链接: utcz.com/qa/408162.html

回到顶部