问个关于 node 和 mongoose 的查询问题。
mongodb 中有这么两个集合:items
和 ad
现在在首页中,需要显示 items
中的某几个数据,和 ad
中的某几个数据。应该怎么处理?
在回调中嵌套回调?
Items.find(function(data){
Ad.find(function(data){
res.render(someTemplates, someDatas);
}
})
不知道有没有其他好的处理方法?
3 回复
可以用async模块的parallel(tasks, [callback])方法,parallel函数是并行执行多个函数,每个函数都是立即执行,不需要等待其它函数先执行。 传给最终callback的数组中的数据按照tasks中声明的顺序。https://cnodejs.org/topic/54acfbb5ce87bace2444cbfb。
async.parallel([
function(callback){
Items.find(function(data){callback(null,data)});
},
function(callback){
Ad.find(function(data){callback(null,data)});
}
],
function(err, results){
if(err){
}else{
res.render(result[0], result[1]);
}
});
@youthfighter node 4.4的版本支持这种写法嘛?