2016-01-19 79 views
0
var posting = new Posting({ 
    content: fields.content, 
    creator: req.user, 
}); 

posting.save(function(err) { 
    if(err) { 
    res.status(501).json({ error: err }); 
    } else { 
    res.json({ posting: posting }); 
    } 
}); 

發佈模型有creator字段,它代表User模型的一個實例。保存後,Post實例將以JSON形式返回。但是返回的Post實例不包含creator字段中對應的User對象的數據。它只發送User實例的id值。如何填充貓鼬模型中的字段?

如何在發送響應之前填充creator字段?

+0

內部保存回調,嘗試調用'User.populate(posting.creator)'之前返回結果。有關填充[這裏](http://devdocs.io/mongoose/api#model_Model.populate)的更多細節。讓我知道這是否有效,以便我可以回答你的問題。 – danilodeveloper

+0

沒有工作。我也試過這個:User.populate(發帖,{path:'creator',model:'User'}); –

回答

1

你需要調用Posting模型.populate方法上posting實例:

posting.save(function(err) { 
    if(err) { 
    res.status(501).json({ error: err }); 
    } else { 
    // Populate the 'posting' object's 'creator' field. 
    Posting.populate(posting, { path: 'creator', model: 'User' }, function (err, posting) { 
     res.json({ posting: posting }); 
    }); 
    } 
});