【问题标题】:client.query not responding in node-postgres library in node.jsnode.js 的 node-postgres 库中的 client.query 没有响应
【发布时间】:2014-02-12 00:41:49
【问题描述】:

我现在正在学习如何在 node.js 中使用 node-postgres 包和 express,以便从 Node.js 中连接到 postgres 服务器。这是我写的代码,但client.query 在这里根本不起作用:


var pg = require("pg");

exports.batting = function(req, res) {
    var conString = "postgres://myUserName:myPassword@localhost:5432/baseball";
    var client = new pg.Client(conString);
    pg.connect(conString, function(err, result) {
        console.log("enter connect");
        if (err) {
            console.log(err);
        } else {
            console.log("will execute a query");
            client.query("select * from batting;", function(err, result) {
                if (err) {
                    console.log(err);
                }
                console.log("success");
            });
        }
    });

}

请注意,我将上面的代码写入了另一个文件,而不是根 app.js 文件中。

但是,当我运行我的应用程序并访问适当的 url 时,它并没有返回任何内容。虽然enter connectwill execute a query 显示在我的终端中,但看起来执行在client.query 中停止并且没有在那里显示success

那么为什么它没有按预期工作?我既没有任何关于 postgres 的经验或知识——我通常使用 mysql 并且只是安装了 postgres,因为 heroku 不允许我使用 mysql(实际上我可以通过第三方插件使用它)。而且我在使用mysql时已经能够成功返回结果,所以原因可能与我使用postgres服务器的设置有关。

请注意,我的 postgres 服务器正在运行,并且我确认我的用户名、密码和 dbname 正确(实际上我确实重置了密码)。

我使用 node 版本 v0.10.21 和 node-postgres @2.11.1。

【问题讨论】:

    标签: javascript node.js postgresql


    【解决方案1】:

    您混淆了 API 调用。 client 您可能用于查询的pg.connect 函数会返回:

    pg.connect(conString, function(err, client, done){
         // handle err here
         client.query("select * from batting;", function(err, result) {
              // handle err here
                console.log("success");
                done(); // don't forget this to have the client returned to the pool
         });
    });
    

    【讨论】:

    • 谢谢。现在工作正常。那么过去几年 API 会发生变化吗?看到我读过的不同教程/博客文章,我仍然感到困惑,包括 Github 自述页面上的官方文档,使用不同的方式编写连接、客户端和查询代码......
    • @user2360798 实际上您仍然可以直接连接客户端,但回调采用不同的参数,最好的方法通常是使用pg.connect 的池。这两种解决方案描述为here
    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    相关资源
    最近更新 更多