目前我正在开发一个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,还有其他方法可以正确地执行此操作吗?
答案 0 :(得分:1)
试试这个。在您指定值之前,响应正在发送。
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);
});
});
});