我正在为 MongoDB 使用 node.js、express 和 MongoSkin 驱动程序。
我正在尝试在我的博客应用程序中呈现一个显示博客文章列表的视图。每个帖子都有一个作者 ID 的引用。我正在尝试对每个帖子进行第二次查询,以获取每个参考文献的完整作者文档。一切都是异步的让我很困惑。
在获取博客文章列表的回调中,我将遍历每篇文章并进行第二次调用以获取相关用户。我不知道如何仅在所有帖子都添加了作者文档后才呈现视图。我什至不确定我是否做对了这些。我如何参考其他文件来完成我想做的事情?
// getPageOfPosts is a custom helper that accepts the page number and number of items to retrieve.
db.collection('blogPosts').getPageOfPosts(req.param('page') || 1, 3, function (err, blogPosts) {
if (err) req.next(err);
blogPosts.forEach(function (blogPost) {
db.collection('users').findOne({ _id: blogPost.authorId }, function (err, user) {
if (err) req.next(err);
blogPost.author = user;
});
});
var viewModel = {
posts: blogPosts
};
res.render('blog/index', viewModel);
});