Ошибка подключения к heroku postgres db в nodejs - PullRequest
0 голосов
/ 06 мая 2018

Кажется, после того, как моя база данных была обновлена ​​до 10.2, я не могу подключиться.

Я использую пакет pg 7.4.2 npm.

Чтобы было ясно, я подключался без проблем в течение 6 месяцев, используя ту же строку подключения, к которой добавлена? Ssl = true.

Я получаю эту ошибку при подключении через пул или клиент.

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)

Я сейчас жестко запрограммировал полную строку соединения postgres, чтобы не возникало проблем с переменными env.

Я пытался добавить / удалить? Ssl = true в конец строки подключения и добавить / удалить ssl: true из конструктора. Я также попробовал с и без обещаний. Та же ошибка не смотря ни на что, как на локальном, так и на развернутом геройке.

импорт:

import { Pool, Client } from 'pg'

метод 1:

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

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

метод 2:

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

1 Ответ

0 голосов
/ 07 мая 2018

Это потому, что v7.4.2 прервал свою поддержку SSL. Вот открытый вопрос .

Вам необходимо строго использовать v7.4.1, пока проблема не будет решена.

UPDATE

Версия 7.4.3 исправила проблему.

...