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"
    }
  • 以上是一个简单的示例

相关推荐
To_OC2 天前
从一行入口代码啃透 NestJS:工厂模式、装饰器和依赖注入是怎么串起来的
后端·设计模式·nestjs
__zRainy__3 天前
Node.js Web 框架选型指南:从 Express 到 Hono 的全景对比
前端·node.js·express·koa·nestjs·egg·fastify
Darling噜啦啦4 天前
NestJS 全栈 CRUD 实战:从 Module 拆分到 RESTful 七大装饰器,彻底搞懂后端接口工程
nestjs
嘟嘟07174 天前
从入口到 CRUD:用 NestJS 的模块化与装饰器思想读懂一个后端应用
后端·typescript·nestjs
想要成为糕糕手4 天前
🚀 NestJS 完全入门指南: Module/Controller/Service讲解 + 实战 CRUD
后端·nestjs
想要成为糕糕手4 天前
🏭 设计模式之工厂模式:从蜜雪冰城到 NestJS,把「new」外包出去
后端·nestjs
小月土星4 天前
用设计哲学的眼光重新审视 NestJS——一个 AI 应用后端的思考
nestjs
触底反弹4 天前
🔥 NestJS 从零到实战:一个 Todos CRUD 搞懂企业级后端框架的核心设计
后端·typescript·nestjs
只一4 天前
吃透 NestJS 核心|工厂模式 + 依赖注入 + Todo CRUD 实战,后端入门到上手
nestjs