我按照以下步骤操作: https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction
当我在本地运行heroku时,它无法连接 - 我看到它正在使用process.env.DATABASE_URL并使用以下命令将其传送到我的本地.env文件: https://devcenter.heroku.com/articles/heroku-local
但它仍然无法连接,我已添加了console.log来查看错误:
"错误:主机" 62.90.xxx.yyy",用户"用户名",数据库"密码",SSL没有pg_hba.conf条目断"
现在怎么办?
答案 0 :(得分:1)
经过大量搜索后发现添加了' pg.defaults.ssl = true'解决了我的问题,同时让我尽可能地靠近Heroku提供的样本。
这是我的代码
const cool = require('cool-ascii-faces');
const express = require('express')
const path = require('path')
const PORT = process.env.PORT || 5000
const pg = require('pg');
pg.defaults.ssl = true; //this is it!!!
express()
.use(express.static(path.join(__dirname, 'public')))
.set('views', path.join(__dirname, 'views'))
....
答案 1 :(得分:0)
一个简洁的解决方案是仅对Heroku服务器连接启用SSL。为此,将dialectOptions.ssl=true
文件中的config.json
添加到Heroku环境中:
{
"production": {
"use_env_variable": "DATABASE_URL",
"dialectOptions": { "ssl": true },
"logging": false
}