#node.js #database #postgresql #view
#node.js #База данных #postgresql #Вид
Вопрос:
Я пытаюсь извлечь некоторую информацию из представления Postgree SQL в базе данных Postgre SQL. Однако результат всегда пустой. Когда я выполняю тот же запрос в базе данных, это дает мне ожидаемые результаты.
const privq = await db.query('SELECT * FROM user_privilege');
console.log(privq.rows);
//[]
const projectsQuery= await db.query('SELECT * FROM projects');
console.log(projectsQuery.rows);
//[{id:1,name:'Example Project',description:'Lorem Ipsum...'},
//{id:2,name:'Test Proj',description:'testing'}...]
Этого не происходит с другими запросами. Объект user_privilege
является представлением, а не таблицей.
Обновить
Я проверил базу данных, и оказалось, что Datagrip (моя программа для взаимодействия с БД) запрашивал СТАРЫЙ сервер, в то время как node запрашивал новый. Новый на самом деле не имеет никаких привилегий вообще, только проекты.
Комментарии:
1. Я предполагаю, что в первом случае выдается ошибка, но ваш код просто проглатывает ее. Попробуйте посмотреть, есть ли какие-либо ошибки на выходе.
2. @TimBiegeleisen Я проверил после прочтения вашего комментария. Кажется, в выходных данных нет ошибки, просто пустой массив
3. Попробуйте использовать этот запрос в вашем Node.js код:
SELECT * FROM blahblahblah
… это также не выдает никакой ошибки?4. @TimBiegeleisen написано «ошибка: отношение «бла-бла-бла» не существует»
5. @TimBiegeleisen Вы правы! Я проверил базу данных, и оказалось, что Datagrip (моя программа для взаимодействия с БД) запрашивал СТАРЫЙ сервер, в то время как node запрашивал новый. Новый на самом деле не имеет никаких привилегий вообще, только проекты.