首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用node-postgres从SELECT返回结果

使用node-postgres从SELECT返回结果
EN

Stack Overflow用户
提问于 2013-07-03 14:52:25
回答 2查看 18.4K关注 0票数 11

在node-postgres中获取SELECT查询返回结果时遇到问题。现在,代码块末尾的行是空的。此select只返回POSTGRESQL中序列的下一个值。我知道您不能从回调中检索结果,但是这里有谁使用过node-postgres(或任何其他数据库模块到node),可能知道修复方法?

代码语言:javascript
复制
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);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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。您将看到异步的东西。

票数 7
EN

Stack Overflow用户

发布于 2016-01-18 21:29:10

如果我们不调用result.addRow()方法,那么在end事件中行数组将为空。

代码语言:javascript
复制
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/

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17441495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档