Node-Postgres连接错误:EADDRNOTAVAIL

时间:2015-01-18 20:08:41

标签: node.js postgresql database-connection port

我不明白为什么我不能使用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中的样子。

Navicat for Postgresql

1 个答案:

答案 0 :(得分:0)

问题是没有为上面的用户名授予db对象。一旦我这样做,一切顺利。希望这有助于其他人。