sqlite3 and node-js returns undefined

sqlite3 and node-js returns undefined

本文关键字:undefined returns node-js and sqlite3      更新时间:2023-09-26

我试图通过Node.js传递sqlite3函数的值,但我总是得到undefined

这是我的代码:

var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('./rolety.db');
var row;
db.get("SELECT open_hour, open_minut FROM autorun_open", function(err, row) {
    console.log(row.open_hour);
    console.log(row.open_minut);
    row = row.open_hour;
});
console.log("R:" + row);

据我所见,它是异步运行的,因为我得到了这样的东西:

Row: undefined
6
45

我的最后一行代码在sql结果之前运行。我应该怎么做,才能从sql中获得正确的值?

您需要添加这样的回调函数:

db.get("SELECT open_hour, open_minut FROM autorun_open", function(err, row) {
    console.log(row.open_hour);
    console.log(row.open_minut);
    row = row.open_hour;
    callback(row);
});
function callback(row) {
    console.log("R:" + row);
}

诀窍是,在获取成功与否之后,回调函数会被调用。在下一步中,如果get失败,您应该考虑错误处理。