Добре, най-накрая успях да го разбера. Мисля, че проблемът беше многоредов и просто непознаване на dotenv за моята локална среда за разработка.
Успях да накарам всичко да работи с моя код по този начин. Работеше и с fs.readFileSync(), но не исках да го ангажирам с моя контрол на източника.
const { Pool } = require('pg')
const fs = require('fs')
const pgPool = new Pool({
user: process.env.PGUSER,
password: process.env.PGPASSWORD,
host: process.env.PGHOST,
database: process.env.PGDATABASE,
port: process.env.PGPORT,
ssl: {
rejectUnauthorized: true,
// ca: fs.readFileSync(
// `${process.cwd()}/cert/ca-certificate.crt`.toString()
// ),
ca: process.env.CA_CERT,
},
})
.on('connect', () => {
console.log('connected to the database!')
})
.on('error', (err) => {
console.log('error connecting to database ', err)
})
Сега в моя config.env трябваше да го направя да изглежда така:
CA_CERT="-----BEGIN CERTIFICATE-----\nVALUES HERE WITH NO SPACES AND A \n
AFTER EACH LINE\n-----END CERTIFICATE-----"
Трябваше да го запазя като низ от един ред, за да работи. Но най-накрая трябваше да се свържа с
{rejectUnauthorized:true}
За променливата на средата на платформата за цифрови океански приложения копирах всичко, включително двойните кавички, и го поставих там. Изглежда, че работи страхотно. Не мисля обаче, че ще можете да зададете тази настройка на true с тяхната база данни за разработка за $7. Трябваше да надстроя до управлявания, за да намеря CA сертификат за изтегляне.