【问题标题】:express.json() block request reach latter middlewareexpress.json() 阻止请求到达后面的中间件
【发布时间】:2022-01-20 10:14:11
【问题描述】:

当我的程序这样时,以前的中间件可以向 Postman 发送字符串 'Hello world'。

app.use((req, res, next) => {
  console.log(req.body);
  res.send('Hello world');
  next();
})

app.use(express.json());

})

但我不知道为什么当我将测试中间件放在 app.use(express.json()) 之后时,它什么都不发送。我使用邮递员发送带有 json 类型原始数据的 post 请求。

【问题讨论】:

    标签: json api express postman middleware


    【解决方案1】:

    您必须在任何路由处理程序之前声明该中间件express.json,因为该中间件负责解析请求的信息并放入请求正文属性中,然后它会自动调用next 继续执行流程。如果您将该中间件放在请求的末尾,则在解析信息后 next 将被调用,因为您没有更多的中间件来管理您的服务器挂起的执行流程。

    【讨论】:

    • 好的,我刚刚发现,因为我的 POSTMAN POST 请求使用带有单引号而不是双引号的原始 json。我把它改成了双引号,所以它起作用了。谢谢。
    【解决方案2】:

    好的,我刚刚发现因为我的 POSTMAN POST 请求使用带有单引号而不是双引号的原始 json。我把它改成了双引号,所以它起作用了。谢谢。

    【讨论】:

      猜你喜欢
      • 2014-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      • 2020-04-16
      • 2023-02-05
      • 1970-01-01
      相关资源
      最近更新 更多