在node-postgres中获取SELECT查询返回结果时遇到问题。现在,代码块末尾的行是空的。此select只返回POSTGRESQL中序列的下一个值。我知道您不能从回调中检索结果,但是这里有谁使用过node-postgres(或任何其他数据库模块到node),可能知道修复方法?
client.connect();
var query = client.query("SELECT nextval(\'idgenerator\');");
var rows = [];
query.on('row', function(row, res) {
rows.push(row);
});
query.on('end', function(result) {
console.log(result.rowCount + ' rows were received');
});
//client.end();
console.log(rows);发布于 2013-07-03 16:04:45
你必须学习javascript / nodejs和事件编程。
query.on('row', function() { /*CODE*/ })的意思是:“当读取行时,执行代码”。
这是异步的;因此query.on()注册事件并返回。
调用So when console.log(rows)时,行仍然为空,因为查询时尚未触发任何'row‘事件。
您应该尝试在query.on('end')事件处理程序的主体中放置'console.log(rows)‘。
此外,在代码中的任何地方,您都应该编写一些console.log。您将看到异步的东西。
发布于 2016-01-18 21:29:10
如果我们不调用result.addRow()方法,那么在end事件中行数组将为空。
var query = client.query("SELECT firstname, lastname FROM emps ORDER BY lastname, firstname");
query.on("row", function (row, result) {
result.addRow(row);
});
query.on("end", function (result) {
console.log(JSON.stringify(result.rows, null, " "));
client.end();
});参考:http://nodeexamples.com/2012/09/21/connecting-to-a-postgresql-database-from-node-js-using-the-pg-module/
https://stackoverflow.com/questions/17441495
复制相似问题