0
好吧,让我说我有两个模型。合同和CommLog。这两项工作都是独立发现的,但我需要许多CommLog来与每个合同相关联。NodeJS的新手。猫鼬如何异步多个查询?
在ContractSchema试图异步
ContractSchema.methods.getCommLog = function getCommLog(){
var log = false;
async.parallel([
function(){
CommLog.find({commType:'contract',parent:this._id},function(err,comms){
log = comms;
});
}],
function(){return log;});
};
当我试图显示位置VAR通讯科= contract.getCommLog()使用它
router.get('/:code', function(req, res, next) {
Contract.findOne({accessCode:req.params.code},function(err,contract){
if(err)
res.send(err);
var data;
if(contract != null){
var comms = contract.getCommLog();
data = {error:false,data:contract,commlog:comms}
}else{
data = {error:true,message:"No Contract"}
}
res.json(data);
});
});
;它不会返回任何东西,因为getCommLog()没有执行异步...
我认为它是我对猫鼬查询的误解,所以如果你明白我想完成什么,请让我知道我在做什么错误。我试过没有异步,总是会返回false。
好吧..所以我设法得到它的工作,但没有通过调用.getCommLog()。相反,我只是用find查询做了一个async.parallel。希望能够保持模型中的方法,但我想这不会在这种情况下工作。 – Tyler 2015-02-05 20:45:29