Я новичок в NodeJS, и у меня есть очень простое приложение Node / Express, которое использует PostGreSQL в качестве базы данных. Мой файл «db. js» выглядит так:
const { Pool } = require('pg');
module.exports = new Pool({
user: 'postgres',
password: 'xxxx',
host: 'localhost',
port: 5432,
database:'gymmanager'
});
Когда я работал только локально, все работало нормально, поэтому я решил развернуть приложение на Heroku. Для этого я создал файл .env с переменными среды для разработки. Вот файл .env:
NODE_ENV=dev
DB_USER='postgres'
DB_PASS='xxxx'
DB_HOST='localhost'
DB_PORT=5432
DB_DATABASE='gymmanager'
И я изменил свой файл «db. js», который теперь выглядит следующим образом:
if(process.env.NODE_ENV !== 'dev') {
const { Client } = require('pg');
const client = new Client({
connectionString: process.env.DATABASE_URL,
ssl: true
});
client.connect();
module.exports = client;
} else {
require('dotenv').config();
const { Pool } = require('pg');
module.exports = new Pool({
user: process.env.DB_USER,
password: process.env.DB_PASS,
host: process.env.DB_HOST,
port: process.env.DB_PORT,
database: process.env.DB_DATABASE,
rejectUnauthorized: false
});
}
Мое приложение было развернуто и работает на Heroku без сбоев, но теперь, когда я запускаю «npm start» локально, я получаю следующую ошибку:
(node:12989) UnhandledPromiseRejectionWarning: Error: self signed certificate
at TLSSocket.onConnectSecure (_tls_wrap.js:1491:34)
at TLSSocket.emit (events.js:315:20)
at TLSSocket._finishInit (_tls_wrap.js:933:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:691:12)
Я пробовал несколько решений ...
Игнорировать недопустимый самоподписанный сертификат ssl в node.js с https.request?
nodejs - ошибка самоподписанного сертификата в цепочке сертификатов
Но ни один из них, похоже, не работает. Кто-нибудь может мне помочь?
Заранее спасибо. :)