表达式不允许变量保留范围,即使它们不是本地的

时间:2018-05-23 05:44:12

标签: mongodb express mongoose

我想保留mongoDB文档中的值以将它们作为响应返回。代码如下:

exports.UserDiseaseInfo = (req, res, next) => {
    let retval = {};
    let dId = "";
    let subDName = "";
    let body = req.body;
    let UId = (body.UId != undefined) ? body.UId : false;
    let SubDId = (body.SubDId != undefined) ? body.SubDId : false;
    if (UId == false || SubDId == false) {
        res.status(404).send({
            response: "Fail",
            body: req.body
        });
    }

    subDisease_model.findById(SubDId, function(error, doc) {
        dId = doc['DiseaseID'];
        subDName = doc['SubDisease'];

    });

    let data = {
        response: 'success',
        subDisease: subDName,
        DiseaseId: dId

    }
    res.status(200).send(data);
};

However the output is:
{
  "response": "success",
  "subDisease": "",
  "DiseaseId": ""
}

它应该是

{
  "response": "success",
  "subDisease": "Migraine",
  "DiseaseId": "5ad0850efdcab0ab875c48a4"
}

任何建议我缺少什么?

1 个答案:

答案 0 :(得分:0)

因为查询需要一些时间才能返回数据,这就是为什么需要将datares.send放在查询回调中的原因...这是{{1}的唯一地方真的有数据......

doc