无法使用节点样本从heroku本地连接到heroku postgres

时间:2018-04-02 06:41:31

标签: node.js heroku heroku-postgres heroku-cli

我按照以下步骤操作: 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条目断"

现在怎么办?

2 个答案:

答案 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
  }