【问题标题】:How to use Nest.js's @Headers properly?如何正确使用 Nest.js 的 @Headers?
【发布时间】:2019-06-02 13:13:00
【问题描述】:

根据controller docs,我可以使用@Headers(param?: string)req.headersreq.headers[param] 来获取标头值。我尝试了第一种方法,我在 Postman 的请求标头中遵循了以下内容

Content-Type:application/json
My-Id:test12345

我有以下控制器示例代码

@Put('/aa/:aa/bb/:bb/')
@UsePipes(new ValidationPipe({ transform: true }))
public async DoMyJob(@Body() request: MyRequestDto,
                                @Param('aa') aa: number,
                                @Param('bb') bb: string,
                                @Headers('My-Id') id: string): Promise<MyResponseDto> {
    // More code here
}

当我设置断点来检查来自My-Id 标头的值时,它是未定义的。

那么我应该如何在 Nest.Js 中正确地从 RESTful 服务客户端获取标头值?

【问题讨论】:

    标签: node.js http-headers nestjs


    【解决方案1】:

    标题将以小写形式发送,因此您需要 @Headers('my-id')


    通过注入完整的 headers 对象易于调试:

    import { Headers } from '@nestjs/common';
    ...
    @Put('/')
    public async put(@Headers() headers) {
        console.log(headers);
    }
    

    headers 变量将引用req.headers

    【讨论】:

      猜你喜欢
      • 2019-05-26
      • 1970-01-01
      • 1970-01-01
      • 2021-01-15
      • 2018-09-11
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 2019-12-03
      相关资源
      最近更新 更多