sqlite3和node-js返回undefined

时间:2014-10-12 10:33:29

标签: javascript sqlite

我正在尝试使用 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中获取正确的值?

1 个答案:

答案 0 :(得分:2)

你需要添加一个这样的回调函数:

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失败,你应该考虑错误处理。