#node.js #express #node-postgres
Вопрос:
Я создаю веб-приложение node express, которое взаимодействует с базой данных postgres с использованием node-pg
. В моей локальной среде все работает нормально, но когда я вытаскиваю проект с github на другой машине и пытаюсь запустить его, я получаю следующую ошибку: (node:445) UnhandledPromiseRejectionWarning: error: permission denied for table <some table>
Я не уверен, почему я получаю эту ошибку, поскольку я подключаюсь к той же базе данных с теми же учетными данными, что и из локальной среды, и я попытался убедиться, что соответствующие привилегии предоставлены с помощью команды GRANT ALL PRIVILEGES ON TABLE <some table> TO postgres;
, а затем перезапустить службу базы данных.
Есть ли что-то, чего мне не хватает, или как бы я решил эту проблему?
Ответ №1:
Хотя я не могу предложить общее решение ваших проблем с подключением, мы можем исправить UnhandledPromiseRejectionWarning
это, буквально обработав отказ от обещания.
try {
// connect to pg
}
catch(e) {
console.error(e)
// Probably if you can't connect to the DB at all that's an unrecoverable problem.
// I'd log whatever useful stats about the running application as you can and then maybe just end the process.
process.exit(1)
}
Внимание документы для процесса.выход() правда, что «это означает, что любой обратный вызов, который до любой сетевой запрос был послан, любой файловой системой доступа, или процессов, записи в stdout или stderr — все это будет некрасиво прекращаются немедленно.» которые могут или не могут быть проблемой для вас.
Комментарии:
1. Потрясающе спасибо, проблема закончилась проблемой с разрешениями пользователей в базе данных postgres
2. np 🙂 рад, что вы решили эту проблему.