根据controller docs,我可以使用@Headers(param?: string)
或req.headers
或req.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服务客户端获取标头值?
答案 0 :(得分:4)
标题将以小写形式发送,因此您需要使用@Headers('my-id')
。
易于注入完整的标头对象进行调试:
@Put('/')
public async put(@Headers() headers) {
console.log(headers);
}