Express 未读取请求正文

Sta*_*001 0 mongoose mongodb node.js express

我是节点和快递的新手。所以,我正在学习如何进行发布请求。当我了解到时,一切都很好,它正在 mangodb 数据库中创建另一个文档。今天,当我尝试做同样的事情时,出现了这个问题。

在此输入图像描述

我尝试了不同的方法,例如删除架构中所需的部分。但似乎 Express 无法读取 req.body ,因为当我发送架构中没有任何必填字段的请求时,它很高兴地接受并填充了默认字段。我真的不明白发生了什么事。我正在同时做另一个项目,它没有给出这个错误。

附言。我正在使用 mongoose@5。

创建游览的代码:

exports.createTour = async (req, res) => {
  try {
    const newTour = await Tour.create(req.body);
    res.status(201).json({
      status: 'success',
      data: {
        tour: newTour,
      },
    });
  } catch (err) {
    res.status(404).json({
      status: 'fail',
      message: err.message,
    });
  }
};
Run Code Online (Sandbox Code Playgroud)

jfr*_*d00 15

如果content-type您的 POST 是application/json,那么您需要:

app.use(express.json())
Run Code Online (Sandbox Code Playgroud)

作为 POST 请求处理程序之前的中间件。这将读取请求的 JSON 正文,解析它并将其放入req.body.