![](/img/trans.png)
[英]Trying to connect my node.js to Heroku PostgreSQL database. Following Heroku Postgres tutorial
[英]How can I connect my local node.js app to my Heroku Postgres database?
當節點應用程序部署到 Heroku 時,我已經設法讓我的 Node.js 應用程序與我的 Heroku Postgres 數據庫正常工作。 但是,每次更改代碼時都必須部署到 heroku 有點費力,我寧願能夠在本地開發並從本地應用程序連接到數據庫。
https://devcenter.heroku.com/articles/connecting-to-heroku-postgres-databases-from-outside-of-heroku
上面的文章並沒有真正描述這是如何完成的,我不確定我需要做什么。
如果我嘗試在本地運行我的應用程序並訪問查詢我的數據庫的端點,我會得到
Error Error: connect ECONNREFUSED 127.0.0.1:5432
而如果我從我的 heroku 部署的應用程序訪問相同的端點,它可以正常工作。
這是我的應用程序
const express = require('express')
const path = require('path')
const PORT = process.env.PORT || 5000;
const { Pool } = require('pg');
const pool = new Pool({
connectionString: process.env.DATABASE_URL,
ssl: {
rejectUnauthorized: false
}
});
express()
.use(express.static(path.join(__dirname, 'public')))
.set('views', path.join(__dirname, 'views'))
.set('view engine', 'ejs')
.get('/', (req, res) => res.render('pages/index'))
.get('/users', async (req, res) => {
try {
const client = await pool.connect();
const result = await client.query('SELECT * FROM users');
const results = { 'results': (result) ? result.rows : null};
console.log(results);
res.status(200).json(results);
} catch (err) {
console.error(err);
res.send("Error " + err);
}
})
.listen(PORT, () => console.log(`Listening on ${ PORT }`));
我認為您需要更新本地計算機上的 process.env.DATABASE_URL。 從錯誤中,看起來 DATABASE_URL 指的是本地主機,而您想使用托管在 Heroku 上的數據庫。
我了解您只想使用遠程數據庫。 該錯誤表示您無法連接到 127.0.0.1:5432。 這是 localhost 的 IP 地址,而不是遠程數據庫。 您的代碼出於某種原因嘗試連接到 127.0.0.1:5432,而它應該嘗試連接到遠程數據庫。
您是否使用 dotenv 訪問 process.env.DATABASE_URL? 你需要 dotenv.config(); 為我工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.