gpt4 book ai didi

postgresql - 在对象数组上执行异步 pg-node 查询

转载 作者:行者123 更新时间:2023-11-29 14:03:24 24 4
gpt4 key购买 nike

我有一个对象的数组,我需要遍历它,并将每个项目插入到数据库 (postgres) 中。我正在使用 _.each 来遍历数组。

arr = [ 
{name: 'Aaron', description: 'First'},
{name: 'Brian', description: 'Second'},
{name: 'Chris', description: 'Third'}
]

var i = 0;
_.each(array, function(lt){
var client = new pg.Client(self.getConnString());
client.connect(function(err) {
if (err) {
//doSomething//
}
var sql = 'insert into load_test (name,description) values(\''+lt.name+'\', \''+lt.description+'\')';
console.log(i + " <- query: " + lt.name + " desc: " + lt.description);
query = client.query(sql);
query.on('end', client.end.bind(client));
i++;
});
});//each

我如何编写此函数 (_each),使其对每次查询执行都是异步的?

谢谢

最佳答案

最后,解决方案如下所示:

self.InsertLT = function(index, callback){
var client = new pg.Client(self.getConnString());
if (index < arr.length){
//console.log('index = ' + index);
var sql = 'insert into table (name,description) values(\''+arr[index].name+'\', \''+arr[index].description+'\')';
//console.log(sql);
client.connect(function(err) {
if (err) {
logger.error(self.ERR_CONNECT_TO_DB + ' --> ' + err);
callback(-1);
}
client.query(sql, function(err, result){
if (err){
logger.error(self.ERR_RUNNING_QUERY + ' --> ' + err);
callback(-1);
}
else{
client.end();
self.InsertLT(++index,callback);
}
});//query
});
}
else{
callback();
}

关于postgresql - 在对象数组上执行异步 pg-node 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20614224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com