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

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

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

示例

  • 我们写一个测试控制器

    ts 复制代码
    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,
        }
      }
    }
  • 请求

    ts 复制代码
    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"
    }'
  • 响应

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

相关推荐
用户5757303346242 天前
拒绝“明文”裸奔!NestJS + Bcrypt 打造企业级用户注册与异常防御体系
nestjs
海市公约10 天前
Python三大高阶特性详解:装饰器、生成器与上下文管理器
装饰器·生成器·yield·高阶函数·python进阶·with语句·上下文管理器
yuanlaile11 天前
NestJS实战商城与云原生落地指南
云原生·nestjs·nestjs学习指南
耿雨飞15 天前
Python 后端开发技术博客专栏 | 第 02 篇 函数式编程与 Python 魔法 -- 闭包、装饰器、高阶函数
开发语言·python·装饰器·高阶函数·闭包
小二李16 天前
DTO,DAO是什么?MVC是什么架构?
nestjs
Ticnix19 天前
NestJs--Prisma 7的安装与数据库配置(超完整)
前端·nestjs
小蜜蜂dry20 天前
nestjs实战-登录、鉴权(二)
前端·后端·nestjs
全栈王校长20 天前
Nest 文件上传 - 就是增强版的 el-upload
前端·后端·nestjs
小蜜蜂dry21 天前
nestjs实战-登录、鉴权(一)
前端·后端·nestjs
小蜜蜂dry21 天前
nestjs实战 - 拦截器,统一处理接口请求与响应结果
前端·后端·nestjs