#node.js #postgresql #express #heroku
Вопрос:
Я пытаюсь развернуть приложение PERN в Heroku. Я создал базу данных Heroku Postgres и развернул в Heroku свое интерфейсное приложение React — Node/Express.
Как мне подключиться к базе данных из моего экспресс-кода? Я использовал npm pg до сих пор, когда приложение все еще было локальным.
Кажется, я не могу найти никакой информации об этом в Интернете…
Ответ №1:
Вам нужно будет импортировать a Pool
из модуля postgre, затем задать строку подключения. Это должно выглядеть примерно так:
const {Pool} = require('pg');
const connectStr = process.env.DATABASE_URL;
const pool = new Pool({
connectionString: connectStr,
ssl: true
});
Затем вы можете запросить базу данных с помощью чего-то похожего на это:
exports.dbAction = function(req, res) {
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
pool.query("select * from exampleTable", (err,
results) => {
if (err) {
console.log(err);
throw err;
}
res.json(results.rows);
});
}
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
указывает узлу разрешить использование ненадежных сертификатов (ненадежный = не проверен центром сертификации). Это не рекомендуемая настройка в производственном режиме. Однако, пока он находится в разработке, это удобный обходной путь.
Комментарии:
1. Это сработало! Спасибо. Можете ли вы объяснить эту линию
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
?2. @StijnKlijn Cool. И да, это указывает узлу разрешить ненадежные сертификаты (ненадежный = не проверен центром сертификации). Это не рекомендуемая настройка в производственном режиме. Однако, пока он находится в разработке, это удобный обходной путь.