繁体   English   中英

如何正确使用 Nest.js 的 @Headers?

[英]How to use Nest.js's @Headers properly?

根据控制器文档,我可以使用@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 服务客户端获取标头值?

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


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

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

然后headers变量将引用req.headers

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM