我正在使用NodeJS postgresql客户端通过它获取一些数据循环并提供输出。我正在使用ExpressJS和postgresql客户端。
这是我的代码
var main_data = some array of data
var user_info = {}
for (var key in result.rows) {
var user = main_data[key].user
client.query('SELECT name,age,address FROM users WHERE user_id = $1 LIMIT 1;' , [user], function(queryErr, result){
var return_data = result.rows[0]
user_info.name = return_data.name
user_info.gender = return_data.gender
user_info.address = return_data.address
main_data[key].user_info = user_info
})
}
done()
res.json(main_data)
return
然而,当我运行此代码时,我没有得到正确的输出。 userinfo未被推送到main_data。它只是输出main_data变量,就像代码的开头一样。
建议重复并不简单 因为函数位于for循环中所以我不能只在函数完成后进行响应调用。我必须等到整个循环完成后才能完成1000多个循环才能完成响应调用。
告诉我如何实现它。 我做错了什么以及如何解决? 非常感谢你
答案 0 :(得分:1)
我自己会使用async.js。
var rows = // your result.rows stuff.
function doTheQuery(item, callback){
// your query logic here, calling the callback with the results
}
async.series(rows, doTheQuery, function(err){
// handle any errors
}