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 });
});
我想看看类似的问题形成的其他用户,但无法找到涉及池的解决方案。
请帮忙。
答
我计算出来部分,
存储所述配置数据为如下对象使得它工作
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
谢谢反馈。我想澄清一下,我已经用随机字符修改了数据库凭证。所以这个URL是一个虚拟URL。此外,由于我是新手,我希望有人能够帮助我,即使问题不大。我坦率地不知道为什么这个问题不好。 –
你说得对,“坏”对我来说不是一个建设性的方式来描述你的问题。让我看看我能否提供帮助 - 首先,您可以粘贴其余的代码吗?例如,“Pool”从哪里来?你实例化它('new Pool(heroconfig);'),但是从你获取池的位置不清楚。 '127.0.0.1:5432'是pg将尝试连接到的默认地址(本地主机),所以它似乎没有收到你的配置。 – hunterloftis