带有byId()的NodeJS额外字段;

目前我正在研究一个nodeJS API,我有一个模型,而且这个模型可以包含媒体项目,就像你在我的代码中看到的那样:

router.get('/:id', function(req, res, next) { qbuilder.byId(Model,req) .exec( function(err,model){ Media.count({'model.entity': model._id}, function(err, media){ if(media){ console.log(media); } }); model.total_media = 15; responders.sendJsonOrError(err, res, model, next); }); }); 

问题是,该代码:

  model.total_media = 15; 

没有出现在响应者中,这很奇怪,因为如果我用下面的方法清理对象:model = []; 它返回空。

一旦我添加lean()到我的查询,它会返回total_media响应者,但是当我这样做时,我得到的问题是:

 router.get('/:id', function(req, res, next) { qbuilder.byId(Model,req) .exec( function(err,model){ Media.count({'model.entity': model._id}, function(err, media){ if(media){ model.total_media = media; } }); responders.sendJsonOrError(err, res, model, next); }); }); 

这不是填充total_media,有没有其他的方法来正确地做到这一点?

试试这个。 响应在分配值之前发送。

 router.get('/:id', function(req, res, next) { qbuilder.byId(Model,req) .lean().exec( function(err,model){ Media.count({'model.entity': model._id}, function(err, media){ if(media){ model.total_media = media; } responders.sendJsonOrError(err, res, model, next); }); }); });