Необработанное предупреждение об ошибке: ошибка: отказано в разрешении для таблицы

#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 🙂 рад, что вы решили эту проблему.