对于我的express/mongo/mongoose路由器,我试图在发送对象之前将其附加到另一个对象。不幸的是从来没有。我错在哪里了?
值得注意的是,回应研究是一系列的对象,如果这很重要的话。
此外,响应研究也不为空。

apiRouter.route('/compounds/:_id')

    .get(function(req, res) {
        Compound.findById(req.params._id, function(err, compound) {
            if (err) res.send(err);

            Study.find({compound_id: compound._id}, function( err, response_study){
               if (err) res.send(err);

               compound["studies"] = response_study;
               console.log(compound);  //logs compound without studies parameter

               res.json(compound);
           });
       });
   })

最佳答案

你好像在用猫鼬?如果是这样,它们不会返回普通对象,而是返回MongooseDocument对象。您需要先将MongooseDocument转换为纯对象,然后再对其进行更改,否则您的更改将不会产生任何效果:

var response = compound.toObject();
response.studies = response_study;
res.json(response);

http://mongoosejs.com/docs/api.html#document_Document-toObject
我已经有一段时间没用猫鼬了,所以可能是toJSON

09-25 20:29