Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript node.js中的node postgres库中的client.query没有响应_Javascript_Node.js_Postgresql - Fatal编程技术网

Javascript node.js中的node postgres库中的client.query没有响应

Javascript node.js中的node postgres库中的client.query没有响应,javascript,node.js,postgresql,Javascript,Node.js,Postgresql,我现在正在学习如何使用node.js和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

我现在正在学习如何使用node.js和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 connect
将执行一个查询时,
似乎在
client.query
中停止执行,而不在那里显示
success

那么,为什么它不能像预期的那样工作呢?我对postgres没有任何经验和知识-我通常使用mysql,只是安装了postgres,因为heroku不允许我使用mysql(实际上我可以通过第三方插件使用它)。当我使用mysql时,我已经能够成功地返回结果,因此原因可能与我使用postgres服务器的设置有关

请注意,我的postgres服务器正在运行,我确认我的用户名、密码和数据库名是正确的(实际上,我重置了密码)


我使用节点版本v0.10.21和节点postgres@2.11.1

您混淆了API调用。可用于查询的
客户端
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自述页面上的官方文档,使用不同的方式编写connect、client、,和查询代码…@user2360798实际上您仍然可以直接连接客户端,但回调采用不同的参数,最好的方法通常是使用
pg.connect
使用池。描述了这两种解决方案。