node.js(nest.js控制器)学习笔记

nest.js控制器: 控制器负责处理传入请求并向客户端返回响应。

为了创建基本控制器,我们使用类和装饰器。装饰器将类与所需的元数据相关联,并使 Nest 能够创建路由映射(将请求绑定到相应的控制器)。

1.获取get请求传参,用@Request装饰器或者@Query()装饰器

typescript 复制代码
import {
  Controller,
  Get,
  Request,
} from '@nestjs/common';

import { WeiService } from './wei.service';

@Controller({
  path: 'wei',
  version: '1', //版本控制
})
export class WeiController {
  constructor(private readonly weiService: WeiService) { }
  // @Request装饰器
  @Get()
  findAll(@Request() req) {
    console.log('@', req.query)
    return {
      code: 200,
      message: '请求成功W'
    }
  }
}
typescript 复制代码
import {
  Controller,
  Get,
  Query,
} from '@nestjs/common';

import { WeiService } from './wei.service';

@Controller({
  path: 'wei',
  version: '1', //版本控制
})
export class WeiController {
  constructor(private readonly weiService: WeiService) { }
  // @Query()装饰器
  @Get()
   findAll(@Query() query) {
    console.log('@@', query)
    return {
      code: 200,
      message: '请求Q成功'
    }
  }
}

2.post请求获取参数,用@Request装饰器或者@Body 装饰器

typescript 复制代码
import {
  Controller,
  Get,
  Query,
} from '@nestjs/common';

import { WeiService } from './wei.service';

@Controller({
  path: 'wei',
  version: '1',
})
export class WeiController {
  constructor(private readonly weiService: WeiService) { }
  //用@Request装饰器
  @Post()
  create(@Request() req) {
    console.log(req.body)
    return {
      code: 200,
      message: '请求成功!'
    }
  }
}
typescript 复制代码
import {
  Controller,
  Get,
  Query,
} from '@nestjs/common';

import { WeiService } from './wei.service';

@Controller({
  path: 'wei',
  version: '1',
})
export class WeiController {
  constructor(private readonly weiService: WeiService) { }
  //用@Body装饰器
  @Post()
  create(@Body() body) {
    console.log(body)
    return {
      code: 200,
      message: '请求成功!'
    }
  }
}

读取请求体中得key值

javascript 复制代码
import {
  Body,
  Controller,
} from '@nestjs/common';

import { WeiService } from './wei.service';

@Controller({
  path: 'wei',
  version: '1',
})
export class WeiController {
  constructor(private readonly weiService: WeiService) { }
  // 读取key
  @Post()
  create(@Body("title") body) {
    console.log(body)
    return {
      code: 200,
      message: '请求成功'
    }
  }
}

动态传参使用 Request装饰器 或者 Param 装饰器

javascript 复制代码
import {
  Controller,
  Request,
} from '@nestjs/common';

import { WeiService } from './wei.service';

@Controller({
  path: 'wei',
  version: '1',
})
export class WeiController {
  constructor(private readonly weiService: WeiService) { }
  // 动态路由
  // Request装饰器 或者 Param 装饰器
  @Get(':id')
  findId(@Request() req) {
    console.log('@@@@@@', req.params)
    return {
      code: 200,
      message: '请求成功!!!!!!'
    }
  }
}

header信息读取使用@header装饰器

javascript 复制代码
import {
  Controller,
  Get,
  Headers,
} from '@nestjs/common';

import { WeiService } from './wei.service';

@Controller({
  path: 'wei',
  version: '1',
})
export class WeiController {
  constructor(private readonly weiService: WeiService) { }
  // 读取header 信息
  @Get(':id')
  findId(@Headers() header) {
    console.log('header', header)
    return {
      code: 200,
      message: '请求成功!!!!!!'
    }
  }
}
相关推荐
Patrick_Wilson15 分钟前
router.replace 之后紧跟 reload,页面为什么无限刷新?
javascript·react.js·浏览器
十月的皮皮1 小时前
C语言学习笔记20260606- 求月份天数三种写法
c语言·笔记·学习
没事别瞎琢磨2 小时前
十一、审计与 Run Session——每一步操作都被记录
人工智能·node.js
没事别瞎琢磨2 小时前
十六、AgentSandbox——把所有模块串起来的编排类
人工智能·node.js
mONESY2 小时前
JavaScript 栈、队列、数组与链表核心知识点总结
javascript·面试
没事别瞎琢磨2 小时前
十二、网络代理与白名单规则引擎
人工智能·node.js
ZengLiangYi2 小时前
TypeScript 项目配置:tsconfig、ESM、路径别名
javascript·typescript·aigc
马士兵教育2 小时前
Java还有前景吗?Java+AI大模型学习路线及项目?
java·人工智能·python·学习·机器学习
没事别瞎琢磨2 小时前
十四、Git Worktree 隔离执行
人工智能·node.js