图解Request常用注解(装饰器)

- 在 nestjs 中提供了很多好用的装饰器来提供参数的获取途径
- 如果把全部请求整个获取到用
@Req()
这个 - 我们在多租户的管理中,通常使用
@Headers()
来获取租户标识 - 更多参考官方文档 controllers#request-object
示例
-
我们写一个测试控制器
tsimport { Controller, Get, Post, Body, Param, Query, Headers } from '@nestjs/common'; @Controller() export class AppController { constructor() {} @Post('test-req/:id') async testReq( @Query('page') page: string, @Param('id') id: string, @Body() body: any, @Headers('x-tenant-id') tenantId: string, ): Promise<any> { return { page, id, body, tenantId, } } }
-
请求
tscurl --request POST \ --url 'http://localhost:3000/test-req/33?page=12' \ --header 'content-type: application/json' \ --header 'x-tenant-id: 123' \ --data '{ "username": "wang", "password": "123456" }'
-
响应
ts{ "page": "12", "id": "33", "body": { "username": "wang", "password": "123456" }, "tenantId": "123" }
-
以上是一个简单的示例