【问题标题】:Not able to connect to PostgreSQL via NodeJS无法通过 NodeJS 连接到 PostgreSQL
【发布时间】:2016-07-19 13:58:01
【问题描述】:

以下是连接详情

exports.DB_NAME                         = "postgres";
exports.DB_USERNAME                     = "abcd";
exports.DB_PASSWORD                     = "abcd1234";
exports.DB_HOST                         = "abcd.cvg87ikjlfjt.us-east-1.rds.amazonaws.com";
exports.DB_PORT                         = "5432";
exports.DB_SCHEMA                       = "ABCD";

这就是我的 NodeJS 代码的样子

var config = {
  user: CONSTANT.DB_USERNAME,
  database: CONSTANT.DB_SCHEMA,
  host: CONSTANT.DB_HOST,
  password: process.env.PGPASSWORD,
  port: CONSTANT.DB_PORT
};
console.log("config : "+JSON.stringify(config));
var pool = new pg.Pool(config);

当我将配置对象传递给 Pool 构造函数时,它失败了。 它给了我以下错误

events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: getaddrinfo ENOTFOUND undefined undefined:5432
    at errnoException (dns.js:27:10)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:78:26)

搜索了所有论坛,每个人的主机名都有错误。但这里不是这样。 不知道为什么会收到此错误。 我的 NodeJS 版本是 4.4.2,PostgreSQL 版本是 9.5.2

欢迎任何帮助/建议。

谢谢。

【问题讨论】:

  • console.log("config : "... 显示什么?它是否使用凭据打印正确的 JSON?
  • 是的,确实如此。它按预期打印数据。
  • 尝试添加错误处理程序,看看是否有错误:github.com/brianc/node-pg-pool#error
  • 我在将配置传递给池构造函数后添加了以下块 `pool.on('error', function(error, client) { if(err) { console.log(err); } }) ` 但是我不认为这个特定的块本身会被执行,因为池对象本身没有被创建。希望在这里有意义吗?
  • 嗨@Maga,你解决过这个问题吗?

标签: node.js postgresql dbconnection node-postgres


【解决方案1】:

也许 DB_PORT 是一个数字,你用一个字符串声明,你可以试试这个吗?

exports.DB_PORT = 5432;

【讨论】:

    猜你喜欢
    • 2021-11-13
    • 2014-10-18
    • 2019-01-12
    • 1970-01-01
    • 2018-05-12
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多