【发布时间】:2020-09-08 22:42:10
【问题描述】:
我正在尝试在循环中进行 db 调用,并希望将该数据添加到一个对象中,然后将该对象发送给用户,但我在用户端只得到一个空对象。 这个我已经查过了asynchronous response into a loop in javascript NodeJS
router.get('/collection', (req, res) => {
const Data = {}
Section.find({})
.then(sections => {
sections.map(section => {
let id = section._id;
Product.find({section: id})
.then(products => {
// console.log(products)
Data[section.title] = {
title: section.title,
routeName: section.title,
id,
items: products
}
console.log(Data)
})
.catch(err => {
return res.status(500).json(err)
})
})
return res.json(data)
})
.catch(err => {
return res.status(500).json(err)
})
})
我希望输出是这样的:-
{
food : {
items: [...]
},
vegetable: {
items: [...]
}
}
食物和蔬菜是键,将从数据库调用中获得,每个键中的项目从对数据库的单独调用中返回。
【问题讨论】: