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

标签 node.js http-headers nestjs

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

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

我有以下 Controller 示例代码

@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 header 中的值时,它是未定义的。

那么在Nest.Js中如何正确获取RESTful服务客户端的header值呢?

最佳答案

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


通过注入(inject)完整的 header 对象易于调试:

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

headers 变量将引用 req.headers .

关于node.js - 如何正确使用Nest.js的@Headers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54081720/

相关文章:

file-upload - 如何在 NestJS for OpenAPI 中注释采用多部分表单数据的端点

node.js - Bot 服务不适用于 Node.js 。错误找不到模块 'botbuilder'

javascript - 在 ExpressJS 中管道远程文件

security - 内容安全策略报告-uri 未被识别

php - 是头 ('Content-Type:text/plain' );有必要吗?

javascript - 在 NestJs 中什么时候使用守卫什么时候使用中间件

mysql - Nodejs 中服务器到客户端的通信?

javascript - 超出最大调用堆栈大小 Node.JS WebCrawler

ios - 我正在获取一个不存在的文件的标题信息?

node.js - URL 输入验证 NestJs