Вопрос в том. Из базы данных postgresql я получаю массив данных и хочу связать его с другой таблицей из базы данных, фото. Насколько я понимаю, pool.query не возвращает данные. Внутри все идет хорошо, но снаружи, как видите, массив остается пустым.
И мне нужно собрать все эти данные воедино и отправить клиенту.
router.get('/all', async (request, response) => {
await pool.query(`SELECT * FROM app_advert LEFT JOIN public.users USING (id) ORDER BY username`, async (error, results) => {
if (error) {
throw error;
}
let adverts = [];
await results.rows.map(async advert => {
pool
.query(`SELECT name FROM app_advert_attachment LEFT JOIN file ON file.id=fk_file_id WHERE fk_advert_id=${advert.id}`)
.then(res => {
const images = res.rows[0];
adverts = [...adverts, {...advert, images}];
})
.finally(() => {
return response.status(201).json(adverts);
});
});
})
});
Я думаю, что эта работа...
router.get('/all', async (request, response) => {
await pool.query(`SELECT * FROM app_advert LEFT JOIN public.users USING (id) ORDER BY username`, async (error, results) => {
if (error) {
throw error;
}else{
let adverts = [];
let array = results.rows;
array.forEach(function(item) {
pool.query(`SELECT name FROM app_advert_attachment LEFT JOIN file ON file.id=fk_file_id WHERE fk_advert_id=${advert.id}`)
.then(res => {
// you process
});
})
}
})
});
Да спасибо. Только я использовал цикл for. Не сильно устал и растерялся сам. и все же спасибо за подсказку