heroku db连接被拒绝

问题描述:

我对heroku和node非常新颖。当我尝试连接到heroku db时,出现以下错误。heroku db连接被拒绝

错误:连接ECONNREFUSED 127.0.0.1:5432

我使用连接池:

var pg = require('pg'); 
 
var heroconfig =process.env.DATABASE_URL || "postgres://jykyslkwkdsvhz:3[email protected]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){ 
 
\t pool1.query('SELECT * FROM test_table;',function(err, result){ 
 
\t \t if(err){ 
 
\t \t \t res.status(500).send(err.toString()); 
 
\t \t } else{ 
 
\t \t \t res.send(JSON.stringify(result.rows)); 
 
\t \t } 
 
\t }); 
 
});

我想看看类似的问题形成的其他用户,但无法找到涉及池的解决方案。

请帮忙。

+0

谢谢反馈。我想澄清一下,我已经用随机字符修改了数据库凭证。所以这个URL是一个虚拟URL。此外,由于我是新手,我希望有人能够帮助我,即使问题不大。我坦率地不知道为什么这个问题不好。 –

+0

你说得对,“坏”对我来说不是一个建设性的方式来描述你的问题。让我看看我能否提供帮助 - 首先,您可以粘贴其余的代码吗?例如,“Pool”从哪里来?你实例化它('new Pool(heroconfig);'),但是从你获取池的位置不清楚。 '127.0.0.1:5432'是pg将尝试连接到的默认地址(本地主机),所以它似乎没有收到你的配置。 – hunterloftis

我计算出来部分,

存储所述配置数据为如下对象使得它工作

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:3[email protected]ec2-54-243-214-198.compute-1.amazonaws.com:5432/dfiijlh3fbe3g9"; 

我计划存储在不同的文件,我的凭据,并要求它在我的服务器上的文件w ^这似乎是一个更好的方法。

我知道这是晚了,但根据以使用连接字符串的文档,你必须这样做:

const { Pool, Client } = require('pg') 
 
const connectionString = 'postgresql://dbuser:[email protected]:3211/mydb' 
 

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

在这里看到:https://node-postgres.com/features/connecting#connection-uri