我使用multi find()来填充“类别”和“ pic”作为“发布”。但我不知道最终将数据全部返回到“ res.send(posts)”的位置。 或使用其他方法“ Promise.all”,请帮助我解决问题
Post.find().then(posts=> {
async.forEach(posts, function(post, done) {
Cat.find().where('posts').in([post.id]).then(categories=> {
post.categories = categories;
var id=mongoose.Types.ObjectId(post.id);
File.findOne({'related.ref': id}).then(pic=>{
post.pic=pic;
});
})
//res.send(posts);????
});
});
答案 0 :(得分:1)
您可以将 async-await 用于路由处理程序:
async (req, res) => {
const posts = await Post.find()
for (post of posts) {
const categories = await Cat.find().where('posts').in([ post.id ])
post.categories = categories
const id = mongoose.Types.ObjectId(post.id)
const pic = await File.findOne({ 'related.ref': id })
post.pic = pic
}
res.send(posts)
}