由于某种原因,我的应用后端认为我在测试路线时并没有提供数据。
我环顾四周,但是没有找到与我遇到的问题完全匹配的东西。
我一直在按照以下教程系列尝试为我的应用构建后端:https://www.youtube.com/playlist?list=PL55RiY5tL51q4D-B63KBnygU6opNPFk_q
在向模型添加验证之前,我的HTTP请求收到200和201。添加验证后,我开始收到错误消息,通知我即使我在也没有提供必要的信息。
我正在使用Mongoose 5.5.8,Cors 2.8.5,Body-Parser 1.19.0和Postman 7.1.1。
我曾经尝试使用.exec()方法,但这只会给我带来更严重的错误。
这是我的模特:
const studentSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
first_name: { type: String, required: true },
last_name: { type: String, required: true },
preferred_name: { type: String, required: true }
});
module.exports = mongoose.model("Student", studentSchema);
这是我的控制人:
add_student: (req, res) => {
const student = new Student({
_id: new mongoose.Types.ObjectId(),
first_name: req.body.first_name,
last_name: req.body.last_name,
preferred_name: req.body.preferred_name
});
student
.save()
.then(result => {
console.log(result);
res.status(201).json({
message: "Student added!",
createdStudent: {
first_name: result.first_name,
last_name: result.last_name,
preferred_name: result.preferred_name
}
});
})
.catch(err => {
console.log(err);
res.status(422).json({
error: err
});
});
},
这是我的路线:
router.route("/")
.post(studentController.add_student)
这是我要通过邮递员传递的数据:
{
"first_name": "Steve",
"last_name": "Jones",
"preferred_name": "Stevie Boy"
}
如您所见,我正在传递数据,但是我不断收到错误消息,好像根本没有信息一样。
我想我需要知道如何正确地通过控制器提供传递数据,所以我的应用程序认为我没有试图传递空对象。