我不明白为什么我不能使用node-postgres客户端连接到Postgres但是当使用带有相同凭据的Postgres的Navicat时,我可以。这是我的代码:
var client = new _pg.Client({
user: 'un',
password: 'pwd',
database: 'postgres',
host: 'localhost',
port: 5432,
ssl: true
});
client.connect(function(err) {
if (err) {
console.log('connect err object');
console.log('err = ' + JSON.stringify(err));
return cb(err, undefined);
}
console.log('no error connecting');
client.query('select * from lookup', function(err, result) {
if (err) {
console.log('query err object');
console.log('err = ' + JSON.stringify(err));
return cb(err, undefined);
}
console.log('query exec successfully');
console.log('result = ' + JSON.stringify(result));
return cb(undefined, client);
});
});
连接回调错误出现:
err = {"code":"EADDRNOTAVAIL","errno":"EADDRNOTAVAIL","syscall":"connect"}
我运行了OSX网络实用程序,它表示端口已打开:
Port Scan has started…
Port Scanning host: 127.0.0.1
Open TCP Port: 5432 postgresql
Port Scan has completed…
我在工作站或Postgres配置中出错了什么?谢谢!
编辑:这是Postgresql在Navicat中的样子。
答案 0 :(得分:0)
问题是没有为上面的用户名授予db对象。一旦我这样做,一切顺利。希望这有助于其他人。