【问题标题】:Nestjs Middlware in main.ts get request bodymain.js 中的 Nestjs 中间件获取请求正文
【发布时间】:2022-08-09 20:47:53
【问题描述】:

当我收到来自前端的请求时,我将日志放入路由处理程序中

@Post(\'create\')
createPost(
@Body() body: CreatePostDto,
){
  console.log(body); // I\'m getting body correctly
}

但是我想在 main.ts 中添加 bodyParser 因为解析 formData 是所有字符串,我想获取从前面添加的其他类型。因此,当我将中间件放入 main.ts 时,我检查了这一点

app.use((req, res, next) => {
console.log(req.body) //its empty object so why?
})

所以我有2个问题。

  1. 为什么在中间件中我得到空体?
  2. 如何解析表单数据?
  • 快递\'bodyparser 不处理multipart/form-dataexpressjs.com/en/resources/middleware/body-parser.html
  • 是的,你必须设置 set app.use(urlencoded(extended: true })
  • @AdrienDePeretti application/x-www-form-urlencodedmultipart/form-data 不一样
  • 好的,但我也有疑问,为什么在中间件中我得到空的身体?
  • bodyParser 将不起作用如果我得到 req.body 的空对象

标签: node.js express nestjs middleware


【解决方案1】:

https://github.com/nestjs/nest/issues/3148 您的中间件在 bodyParser 之前应用。而不是使用 app.use(),你应该遵循这个例子:https://docs.nestjs.com/middleware#applying-middleware,所以在你的情况下:

【讨论】:

    猜你喜欢
    • 2019-06-03
    • 2021-01-14
    • 2021-08-02
    • 2019-01-25
    • 2020-08-29
    • 2021-05-03
    • 2021-10-18
    • 2018-05-17
    • 2019-03-13
    相关资源
    最近更新 更多