gpt4 book ai didi

node.js - nodejs、pgSQL 和异步查询

转载 作者:行者123 更新时间:2023-11-29 13:59:13 25 4
gpt4 key购买 nike

我是 nodejs 的新手,我正在尝试从我的 PG 服务器获取一些数据。我设法获取了我的数据,但不是按照我预期的顺序。我可能没有正确使用它,有人可以帮忙吗?

这是一个代码示例:

var pg = require('pg');

var db = new pg.Client(conString);
var link = db.connect();

var data = {};

// -----
console.log(prefix+'Fetching categories');
db.query('SELECT DISTINCT category FROM cc WHERE category IS NOT NULL', function(err, data){
data.rows.forEach(function(row){
data[row.category] = {}; // initialise
});
console.log('1111111',data,'---------');
});
console.log('2222222',data,'---------');

for (var category in data)
{
console.log(prefix+'Listing values for on "'+category+'"');
var values = db.query('SELECT SUBSTRING(date::varchar, 1,7) AS month, sum(amount) FROM cc WHERE category = \''+category+'\' GROUP BY 1 ORDER BY 1', function(err, data){
console.log('Got values',data.rows);
});
}

// -----
console.log(prefix+'Ending connection to database');
// db.end();

// -----
console.log(prefix+'Ending transaction on server side');
response.end();

我在 1111111 之前得到 222222 :/所以我的结果被发送为空,然后被填充:( 我该怎么办?

感谢您的宝贵时间!

最佳答案

看看 promise :https://github.com/promises-aplus/promises-spec . (一个很好的 nodejs 库是 q - http://documentup.com/kriskowal/q/).they 对于在所有这些回调中保持 nodejs 代码的连贯和整洁非常有用。每个 nodejs 开发人员都必须这样做。

关于node.js - nodejs、pgSQL 和异步查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24583556/

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