【发布时间】:2020-08-21 15:34:23
【问题描述】:
Heroku 网站声明 DATABASE_URL 是自动为您设置的。我使用了命令
heroku config
确认 DATABASE_URL 确实已设置。
但是当我使用 pg package 命令时
const client = new Client({
connectionString: process.env.DATABASE_URL,
ssl: true,
});
然后执行console.log(process.env.DATABASE_URL),变量读取为undefined。
我遇到的其他错误是:
UnhandledPromiseRejectionWarning:错误:服务器不支持 SSL 连接
完整代码为:
const express = require('express');
require('dotenv').config();
const { Client } = require('pg');
const app = express();
console.log(process.env.DATABASE_URL);
const client = new Client({
connectionString: process.env.DATABASE_URL,
ssl: true,
});
client.connect();
client.query('SELECT * FROM customers;', (err, res) => {
if (err) throw err;
for (let row of res.rows) {
console.log(JSON.stringify(row));
}
client.end();
});
app.get('/', (req, res) => {
res.send('Hello World')
});
app.listen(4000, () => {
console.log(`Server started on port`);
});
当我使用本地 postgresql 数据库时,该代码有效,但是当我尝试连接到 Heroku 的 postgres 数据库时,出现上述错误。有什么建议吗?
【问题讨论】:
-
你在哪里得到这个错误?在您的本地设置或 Heroku 控制台中?
-
本地设置错误。
-
我正在做同样的事情并得到同样的错误:(你找出问题所在了吗?
-
@legend12 DATABASE_URL 将仅在 heroku 生产环境中定义。如果您在本地尝试,您显然会收到此错误。
标签: node.js postgresql heroku pg