невозможно прочитать данные монго в expressJs с помощью findById - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь прочитать данные mongoDB в expressjs и вернуть их обратно, но получаю сообщение об ошибке

{
    "error": {
        "message": "Cannot read property 'DiseaseID' of undefined"
    }
}

Код:

exports.UserDiseaseInfo = (req, res,next) => {

            let retval = {};
            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});
                          }
             var subd = subDisease_model.findById(SubDId);
                    let data = {
                                            response:'success',
                                            subDisease :  "XX",
                                            diseaseId : subd[0].DiseaseID

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

SubDiseaseModel:

const mongoose = require('mongoose');
const AddictionsSchema = new mongoose.Schema({
    DiseaseID   : mongoose.Schema.Types.String,
    SubDisease  : mongoose.Schema.Types.String
});
module.exports = mongoose.model('SubDiseaseMaster', AddictionsSchema, 'SubDiseaseMaster');

Данные БД:

db.SubDiseaseMaster.find({})
{ "_id" : ObjectId("5ad0850efdcab0ab875c4890"), "DiseaseID" : "5ad06decfdcab0ab875c4838", "SubDisease" : "Acidity" }

JSON Call:

POST /api/UserDiseaseInfo HTTP/1.1
Host: 1nature.in
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 62e22748-5c30-3f4b-4852-fc0bab68db0d

{
    "UId":"A",
    "SubDId": "5ad0850efdcab0ab875c48a4"
}

Есть идеи, где я терплю неудачу?

1 Ответ

0 голосов
/ 23 мая 2018

findById возвращает один документ, и вы рассматриваете его как массив и пытаетесь прочитать, как показано ниже:

let data = {
             response:'success',
             subDisease :  "XX",
             diseaseId : subd[0].DiseaseID // <- here is the problem 
}

Замените subd[0].DiseaseID на subd.DiseaseID, и проблема будет исправлена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...