Nestjs框架: 关于controller中的常用装饰器

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

在这里插入图片描述

  • 在 nestjs 中提供了很多好用的装饰器来提供参数的获取途径
  • 如果把全部请求整个获取到用 @Req() 这个
  • 我们在多租户的管理中,通常使用 @Headers() 来获取租户标识
  • 更多参考官方文档 controllers#request-object

示例

  • 我们写一个测试控制器

    import { 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,
        }
      }
    }
    
  • 请求

    curl --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"
    }'
    
  • 响应

    {
      "page": "12",
      "id": "33",
      "body": {
        "username": "wang",
        "password": "123456"
      },
      "tenantId": "123"
    }
    
  • 以上是一个简单的示例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值