我在 sqlite3 和 nodejs 上找到的每个示例都只是将数据写入控制台,这是无用的 - 如何等待数据并从调用方法返回它?可以说我有:
exports.selectData = function(tableName, parameters, successHandler) {
var dbConn = new sqlite3.Database('./data/myAppsData.db');
dbConn.all("SELECT " + parameters + " FROM " + tableName + "", function(err, rows) {
// what to do here ? or somewhere else ?
});
}
如何获取从 selectData 返回的数据(行)?或者,使用 successHandler 回调? (注释所在位置未定义)
最佳答案
dbConn.all("SELECT " + parameters + " FROM " + tableName + "", function(err, rows) {
return rows // could replace with JSON.stringify(rows) If you want to pass JSON data
});
或者正如 ionizer 所说,你可以返回一个 promise 。如果需要使用async/await
exports.selectData = function(tableName, parameters, successHandler) {
var dbConn = new sqlite3.Database('./data/myAppsData.db');
return new Promise((resolve, reject) => {
dbConn.all("SELECT " + parameters + " FROM " + tableName + "",
function(err, rows) {
if(err) {
reject (err);
} else {
resolve(rows);
}
});
});
}
关于node.js - sqlite3 nodejs - 同步返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47720686/