PostgreSQL无法在Heroku上使用Node.js

时间:2013-04-25 21:27:48

标签: node.js postgresql heroku

我正在尝试使用Heroku和PostgreSQL数据库处理node.js应用程序。

我已经按照Heroku文档的教程进行了操作: https://devcenter.heroku.com/articles/nodejs#using-a-postgres-database

依赖关系很好,我的代码基本上如下:

var pg = require('pg');

pg.connect(process.env.DATABASE_URL, function(err, client) {
  var query = client.query('CREATE TABLE users (id bigint auto_increment not null, login varchar(250), constraint pk_users primary key (id) )');

  query.on('row', function(row) {
    console.log(JSON.stringify(row));
  });
});

我尝试过各种形式的查询,例如:

var client = new pg.Client(process.env.DATABASE_URL);
client.connect();

但是每次我的heroku日志中都会出现这个错误:

at Object.afterConnect [as oncomplete] (net.js:875:19)
Error: connect ECONNREFUSED
at errnoException (net.js:884:11)

如果有人遇到过这种问题,欢迎任何帮助。 谢谢。

1 个答案:

答案 0 :(得分:2)

我建议尝试console.log(process.env.DATABASE_URL);,然后使用该地址在本地计算机上使用客户端手动连接。我知道Heroku数据库服务器是开放的远程连接(但我以前错了)。

如果没有,你可以获得heroku console并使用postgre客户端。

ECONNREFUSED是当您尝试连接到不可联系/可连接/侦听的地址时弹出的套接字错误。

如果process.env.DATABASE_URL确实返回了正确且可连接的地址,那么我将会console.log(pg);来确保该对象符合我的期望。