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: '请求成功!!!!!!'
    }
  }
}
相关推荐
晓得迷路了12 分钟前
栗子前端技术周刊第 111 期 - Next.js 16.1、pnpm 10.26、Bun 1.3.5...
前端·javascript·bun
我的xiaodoujiao13 分钟前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 35--二次封装MySQL数据库连接操作
python·学习·测试工具·pytest
inputA15 分钟前
【rt-thread】点灯实验和按键输入实验
c语言·笔记·学习·实时操作系统
亮子AI17 分钟前
【node.js】如何使用 node.js 来制作命令行应用?
node.js
Radan小哥18 分钟前
Docker学习笔记—day013
笔记·学习·docker
PNP Robotics21 分钟前
聚焦具身智能,PNP机器人展出力反馈遥操作,VR动作捕捉等方案,获得中国科研贡献奖
大数据·人工智能·python·学习·机器人
shangxianjiao23 分钟前
vue前端项目介绍项目结构
前端·javascript·vue.js
黑客思维者25 分钟前
机器学习016:监督学习【分类算法】(支持向量机)-- “分类大师”入门指南
人工智能·学习·机器学习·支持向量机·分类·回归·监督学习
xiaobuding_QAQ31 分钟前
51汇编仿真proteus8.15学习篇一(附源码)
汇编·单片机·学习·proteus
乐茵lin32 分钟前
golang中 Context的四大用法
开发语言·后端·学习·golang·编程·大学生·context