节点服务器无法连接到postgres db

Dan*_*ani 6 postgresql node.js node-postgres

我最近从MySQL切换到postgres作为node.js项目的数据库.虽然我能够从我的本地pgAdmin III(OSX)客户端访问我的远程postgres数据库,但到目前为止我一直无法通过node.js连接到我的数据库.我确信我为pgAdmin和我的node.js输入的凭据完全相同.我尝试过的另一件事是在我的数据库服务器的pg_hba.conf中设置我的本地ipadress而不是md5.有什么我做错了吗?我最喜欢的搜索引擎提出了一些关于重置我的本地操作系统的令人担忧的命中.我刚刚使用了node-postgres的github repo doc中的示例:

var pg = require('pg');

var conString = "postgres://myusername:mypassword@hostname:5432/dbname";

var client = new pg.Client(conString);
client.connect(function(err) {
  if(err) {
    return console.error('could not connect to postgres', err);
  }
  client.query('SELECT NOW() AS "theTime"', function(err, result) {
    if(err) {
      return console.error('error running query', err);
    }
    console.log(result.rows[0].theTime);
    client.end();
  });
});
Run Code Online (Sandbox Code Playgroud)

这些是我每次尝试启动服务器时遇到的错误:

could not connect to postgres { [Error: getaddrinfo ENOTFOUND] code: 'ENOTFOUND', errno: 'ENOTFOUND', syscall: 'getaddrinfo' }
Run Code Online (Sandbox Code Playgroud)

非常感谢帮助

Dan*_*ani 22

它似乎node-postgres不接受您密码中的主题标签.删除主题标签后,我能够毫无问题地连接.不会想到这一点,因为pgAdmin接受了它并没有让我成为一个问题.

  • 非常感谢.只是执行encodeURIComponent('passwordwith#')修复了问题. (5认同)