2014-10-12 85 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