0
我的nodejs應用程序做的一切都很好,但由於嵌套數據庫查詢,我無法知道該進程是否已完成。在嵌套數據庫查詢完成後進行回調
的過程是這樣的:
function saveToDB(allData, callback) {
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
database: 'node'
});
[].forEach.call(Object.keys(allData), function(prop){
var conditions = {link: allData[prop]['link']};
connection.query("SELECT link FROM articles WHERE ?", conditions, function(err, rows, fields) {
if(rows.length < 1) {
connection.query('INSERT INTO articles SET ?', {
link: allData[prop].link,
title: allData[prop].title,
description: allData[prop].description,
pubDate: allData[prop].pubDate
}, function(err, result){
if(err) throw err;
});
}
});
//Still there are some
});
}
我想打電話的時候,環路和查詢完callback
,這樣我就可以關閉connection
或退出程序。
有什麼想法?
我試圖用async庫concat的方法,但我無法弄清楚如何。
你需要'async.forEach' – SLaks
或者使用'async.reduce',創造一個大的INSERT查詢 – Sonata
@SLaks你的意思是使用'async.forEach'而不是'[] .forEach'? – Maxali