在express中尝试POST时,请求正文未定义



由于某些原因,在尝试进行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中间件。

最新更新