由于某些原因,在尝试进行post请求时,请求主体是未定义的:
这是我的路由器:router.route("/").post(schoolController.createSchool);
这是我在createSchool:的schoolController中输入的内容
exports.createSchool = async (req, res) => {
try {
console.log(req.body);
// return undefined
const newSchool = await School.create(req.body);
res.status(201).json({
status: "success",
data: {
school: newSchool,
},
});
} catch (err) {
res.status(400).json({
status: "fail",
message: err,
});
}
};
此外,我正在学习jonas关于udemy的nodejs课程,他几乎有同样的东西,除了处理旅行请求而不是学校
您在这里面临的问题可能是您没有正确配置body解析器中间件。正常的req
将不包含任何名为body
的属性。只有当请求通过主体解析器中间件时,body
密钥才会添加到req
中。您可以尝试控制台日志req
。如果请求被正确记录,那么在代码中使用req.body
之前,您很可能需要正确配置bodyparser中间件。