我必须尝试使用postman工具将我的子信息存储到MongoDB中。但它向我显示了这条消息"消息":"子信息验证失败" 在邮差控制台。子信息是我的收藏名称,我存储了我的孩子信息。
我的要求是将结果存储在数组形式中,如下面MongoDB中提到的模式
1)。这是js子模式
userId:{
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
quiz:[
{
questionId:{
type: mongoose.Schema.Types.ObjectId,
ref: 'questions'
},
score:{type:String},
time:{type:String}
}
]
2)。这是节点js
try {
var quizArr = [];
var quizObj = {
'questionId': req.params.questionId,
'score': req.params.score,
'time': new Date().toISOString()
};
quizArr.push(quizObj);
var userObj = {
'userid': req.params.userId,
'quiz': quizArr
};
//var parseObj = Json.stringify(userObj); This line is comment
var childinfoSave = new QuizChildInfo(userObj);
childinfoSave.save(function (err) {
if (err) return next(err);
res.send("Child questionId score and date saved successfully")
console.log("Child questionId score and date saved successfully");
});
}catch(err){console.log(err);}
3)。邮递员屏幕的输出
{
"message": "childinfos validation failed"
}
4)。控制台输出
Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html
5)。 Mongo控制台
{
"_id" : ObjectId("57bc483169e718642ac0ac44"),
"levelsAttempted" : [ ],
"quiz" : [ ],
"__v" : 0
}
答案 0 :(得分:0)
对于控制台的问题,
将mongoose.Promise = global.Promise;
放入已建立服务器连接的文件中(例如我的index.js
}。
我认为你可能还没有发布整个代码,因为我在你的代码中找不到childinfos
。