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

相关推荐
for_ever_love__3 天前
Python 进阶——迭代器、生成器、装饰器与 asyncio
python·装饰器·生成器·大模型开发
weixin_440730504 天前
装饰器decorator总结(函数即是变量、高阶函数、嵌套函数、参数组)
python·装饰器
花旗蜕变5 天前
前端转 NestJS 全栈实践:从表单页面到微信业务系统
前端·typescript·nestjs
柒和远方12 天前
NestJS + TypeORM 学习笔记:语法和类型不绕了
postgresql·orm·nestjs
Emily1568535987017 天前
GE IS420UCSCH1B Mark VIe 四核控制器模块
控制器·控制器模块·ge·is420ucsch1b
小二李17 天前
第15章 NestJS 项目部署
nestjs
前端踩bug工程师18 天前
nestjs 实现一对多,多对一,一对一在实现上的区别
nestjs
爱丶不疚23 天前
Electron:Module 与 Service 的职责边界与加载时序编排
前端·electron·nestjs
深圳市尚想信息技术有限公司24 天前
HITENX海速芯TM52F1363-SSOP24 8KB Flash存储+EEPROM,国产8位MCU单片机
单片机·mcu·flask·芯片·控制器·海速芯
szxinmai主板定制专家1 个月前
基于 RK3588+RK1820/28 算力卡的国产工控机,适用于机器视觉,机器人等边缘算力场景
人工智能·fpga开发·zynq·控制器·mpsoc·半导体设备