如何填充 mongoose 模型中的字段?

How do I populate a field in a mongoose model?

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 字段?

您需要在 posting 实例上调用 Posting 模型的 .populate 方法:

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 });
    });
  }
});