2014-10-12 58 views
0

我试图从sqlite3的函数传递价值与Node.js的,但我发现总是undefinedsqlite3的和节点JS返回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中获得正确的值?

回答

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

+0

THx,完美的作品。 – user2104455 2014-10-21 07:28:45

+0

谢谢。请将我的答案标记为正确的答案。 – Freddy 2014-10-21 10:58:37