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