【问题标题】:request body is undefined when trying to POST in express尝试以快递方式发布时请求正文未定义
【发布时间】:2020-12-28 07:17:14
【问题描述】:

由于某种原因,在尝试发出 post 请求时请求正文未定义:

这是我的路由器: router.route("/").post(schoolController.createSchool);

这是我在 schoolController 中为 createSchool 输入的内容:

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-parser中间件吗? expressjs.com/en/resources/middleware/body-parser.html
  • 没有什么是正文解析器中间件?

标签: node.js express post routes


【解决方案1】:

您在这里遇到的问题很可能是您没有正确配置 body-parser 中间件。普通的req 将不包含名称为body 的任何属性。只有当请求通过 body-parser 中间件时,body 键才会被添加到req。您可以尝试控制台日志记录req。如果请求被正确记录,您很可能需要考虑正确配置 bodyparser 中间件,然后才能在代码中使用 req.body

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 2017-10-03
    • 2018-06-24
    • 2019-12-16
    • 1970-01-01
    • 2020-01-08
    相关资源
    最近更新 更多