1

我正在尝试使用 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)

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

4

1 回答 1

2

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

如果您无法获得heroku console并使用 postgre 客户端。

ECONNREFUSED 是一个套接字错误,当您尝试连接到不可联系/不可连接/无法侦听的地址时会弹出该错误。

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

于 2013-04-26T04:26:12.780 回答