Не отправляется весь результат findAll nodejs sequelize
Я пытаюсь отправить все полученные объекты Items с помощью res.send(JSON.stringify(items));, но отправляется пустой объект {}. Как это можно исправить?
Orders.findAll({
where: {
userId: req.user.id
}
}
)
.then(p => {
p.forEach(elf => {
items = Items.findAll({
where: {
id: elf.itemId
}
})
})
res.send(JSON.stringify(items));
});
Ответы (1 шт):
Автор решения: Владимир
→ Ссылка
Items.id - обычно primary key.... findAll будет лишним) В forEach вы перебираете и на каждый результат делаете новый запрос.. Попробуйте вот так
const allOrders = await Orders.findAll({ where: { userId: req.user.id } })
const itemIds = allOrders.map(elf => elf.itemId)
const allItems = await Items.findAll({ where: { id: {[Sequelize.Op.in]: itemIds} } })
res.send(JSON.stringify(allItems))
Возможно, вам так же пригодится выборка только поля elf.itemId, а не всей строки..