Error connecting to heroku postgres db in nodejs

时光总嘲笑我的痴心妄想 提交于 2020-01-14 12:53:09

问题


It seems after my database was upgraded to 10.2 I'm unable to connect.

I'm using the pg 7.4.2 npm package.

To be clear, I have been connecting without issue for 6 months using the same connection string which had ?ssl=true appended to it.

I get this error connecting via Pool or Client.

AssertionError [ERR_ASSERTION]: false == true
    at Object.exports.connect (_tls_wrap.js:1099:3)
    at Socket.<anonymous> (/home/e/express/testpg/node_modules/pg/lib/connection.js:94:23)
    at Object.onceWrapper (events.js:219:13)
    at Socket.emit (events.js:127:13)
    at Socket.emit (domain.js:421:20)
    at addChunk (_stream_readable.js:269:12)
    at readableAddChunk (_stream_readable.js:256:11)
    at Socket.Readable.push (_stream_readable.js:213:10)
    at TCP.onread (net.js:598:20)

I'm now hardcoding the full postgres connection string so there is no issue with env variables.

I've tried adding/removing ?ssl=true to the end of the connection string and adding/removing ssl:true from the constructor. I've also tried with and without promises. Same error no matter what on both local and deployed to heroku.

imports:

import { Pool, Client } from 'pg'

method 1:

let pool = new Pool({
  connectionString: csnew,
  ssl: true
})

pool.connect().then( client => {
  console.log('connected')
})
.catch(e=> {
  console.log(e)
})

method 2:

let pgclient = new Client({
  connectionString: csnew,
  ssl: true
})
pgclient.connect().then( () => {
  console.log('connected')
}).catch(e=> {
  console.log(e)
})

回答1:


That's because v7.4.2 broke its SSL support. Here's the open issue.

You need to use strictly v7.4.1 till the issue is resolved.

UPDATE

Version 7.4.3 fixed the issue.



来源:https://stackoverflow.com/questions/50203747/error-connecting-to-heroku-postgres-db-in-nodejs

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!