如何将变量设置为查询?我试图在node.js中使用函数和回调来完成异步,但我不知道如何让查询等于变量。我在这段代码中尝试做的是获取属于用户的朋友集合并返回朋友结果(我认为我在查询insertAll中没有正确执行),然后找到每个用户的信息查询。然后将结果作为渲染返回。我不知道怎么用这个来调用渲染...
这是我的代码:
exports.contactList = function(req, res) {
var insertFriend = function(data, callback) {
var friend = User.findById({_id: user.friendStatus.fuId}, function() {
callback(null, data);
}, friend);
};;
var insertAll = function(coll, callback) {
var queue = coll.slice(0),
friendX;
(function iterate(){
if(queue.length === 0) {
callback();
return;
}
friendX = queue.splice(0,1)[0];
insertFriend(friendX, function(err, friendX) {
if(err) {throw err;}
console.log(friendX + ' inserted');
process.nextTick(iterate);
});
})();
};
insertAll([Friend.findOne({userId: req.signedCookies.userid})], function(){
});
};
答案 0 :(得分:2)
如果您未通过回调,则会返回Query
对象。
来自http://mongoosejs.com/docs/queries.html:
当回调函数:
传递,操作将立即执行,结果传递给 回调。
未传递,返回Query实例,它提供了一个特殊的QueryBuilder 接口为你。