heroku数据库连接被拒绝

时间:2017-02-24 01:28:50

标签: node.js postgresql heroku

我是heroku和node的新手。当我尝试连接到heroku数据库时,出现以下错误。

错误:连接ECONNREFUSED 127.0.0.1:5432

我正在使用连接池:

var pg = require('pg');
var heroconfig =process.env.DATABASE_URL || "postgres://jykyslkwkdsvhz:3ba43ff7db0c8dv9a914bac02f55ce944d8ccec31b67f858df3a858faa386c8e@ec2-54-243-214-198.compute-1.amazonaws.com:5432/dfiijlh3fbe3g9";

//var pool1 = new Pool(heroconfig);
var pool1 = new Pool(heroconfig);


app.get('/db', function(req, res){
	pool1.query('SELECT * FROM test_table;',function(err, result){
		if(err){
			res.status(500).send(err.toString());
		} else{
			res.send(JSON.stringify(result.rows));
		}
	});
});

我试图从其他用户那里查看类似的问题,但找不到涉及合并的解决方案。

请帮忙。

2 个答案:

答案 0 :(得分:0)

我想出了部分,

将配置数据存储为如下对象使其可以正常工作

var heroconfig = {
user: 'username',
database: 'database name',
password: 'some pass word',
host: 'host name',
port: 5432,
max: 10,
idleTimeoutMillis: 30000,
};

然而,在使用我原始问题中提到的代码行时,数据库url存储在变量中,它不起作用:

var heroconfig =process.env.DATABASE_URL || "postgres://jykyslkwkdsvhz:3ba43ff7db0c8dv9a914bac02f55ce944d8ccec31b67f858df3a858faa386c8e@ec2-54-243-214-198.compute-1.amazonaws.com:5432/dfiijlh3fbe3g9";

我打算将我的凭据存储在另一个文件中,并在我的服务器文件中需要它,这似乎是一种更好的方法。

答案 1 :(得分:0)

我知道这已经很晚了,但根据文档为了使用连接字符串,你必须这样做:

const { Pool, Client } = require('pg')
const connectionString = 'postgresql://dbuser:secretpassword@database.server.com:3211/mydb'

const pool = new Pool({
  connectionString: connectionString,
})

见这里:https://node-postgres.com/features/connecting#connection-uri