Javascript node.js中的node postgres库中的client.query没有响应
我现在正在学习如何使用node.js和express中的包,以便从node.js中连接到postgres服务器。下面是我写的代码,但是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
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
使用池。描述了这两种解决方案。