Я определяю вложенную схему, когда я заполняю поля ввода, она ничего не возвращает и не сохраняет в Mongodb - PullRequest
1 голос
/ 20 апреля 2019

Я определяю вложенную схему, но когда я отправляю входные данные, ничего не возвращается, как мне решить эту проблему?
это мой результат:

{
    "message": "handeling post request to /user-api",
    "CreatedUserInfo": {
       "_id": "5cbb7fbaad28fe209099a57c"
    }
}

это мой код:

const userEduSchema = new mongoose.Schema(
    {
        eduLevel : String ,
        eduField : String,
        eduInst :String,
        eduCity :String,
        eduDate :Date,
        proposalTitle :String
}
)

const allEduSchema = new  mongoose.Schema(
    {
        bsc: userEduSchema, 
       master: userEduSchema,
        phd:  userEduSchema , 
}
) 

module.exports =  mongoose.model('Users', allEduSchema )

и это мое user.js для сохранения входных данных в MongoDB. Я не знаю, правда это или нет:

const userModels = require('../../models/userModels')

router.post('/', (req , res, next) => {
const user = new userModels({
 _id : new mongoose.Types.ObjectId,
eduLevel :req.body.eduLevel,
eduField :req.body.eduField,
eduInst :req.body.eduInst,
eduCity :req.body.eduCity,
eduDate :req.body.eduDates,
proposalTitle :req.body.proposalTitle,
})
user.save().then(result =>{
    console.log(result)
}).catch (err => {
    console.log(err)
})
    res.status(201).json ({
        message:'handeling post request to /user-api',
        CreatedUserInfo : user
})
})```

Ответы [ 3 ]

0 голосов
/ 21 апреля 2019

Прежде чем создать нового пользователя, вам необходимо указать свою «пользовательскую» лунную схему. Как сказал Димитрис Цегген.

Я использую асинхронную функцию и пытаюсь / ловить для решения этой проблемы. Может быть, вы могли бы ....

router.post("/", async (request, response) => {
try {
   const user  = new Users({new user's data here..... });
   const  result = await user.save();
    response.send(result);
} catch (error) {
    response.status(400).send(error);
}

});

try catch может избежать непредвиденной ошибки и обработать ее.

0 голосов
/ 24 апреля 2019

Проблема заключалась в определении способа получения входных данных, я должен определить вложенный объект, а внутри него поместить тела запроса, а также определить вложенную схему.

bsc:{
bscEduLevel :req.body.bscEduLevel,
    bscEduField :req.body.bscEduField,
    bscEduInst :req.body.bscEduInst,
    bscEduCity :req.body.bscEduCity,
    bscEduDate :req.body.bscEduDate,
    bscProposalTitle :req.body.bscProposalTitle
}
0 голосов
/ 21 апреля 2019

Вы определили userSchema?Если нет, вы пытаетесь экспортировать схему, которая не существует.Опять же, если вы не определили userSchema и хотите экспортировать allEduSchema, замените последнюю строку файла вашей модели на:

const EduSchema = mongoose.model("EduSchema", allEduSchema);
module.exports = EduSchema;
...