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: '请求成功!!!!!!'
    }
  }
}
相关推荐
乐多_L37 分钟前
使用vue3框架vue-next-admin导出表格excel(带图片)
前端·javascript·vue.js
19岁开始学习1 小时前
Go学习-入门
开发语言·学习·golang
纯粹要努力1 小时前
前端跨域问题及解决方案
前端·javascript·面试
(; ̄ェ ̄)。1 小时前
在Nodejs中使用kafka(三)offset偏移量控制策略,数据保存策略
分布式·后端·kafka·node.js
csdn_aspnet2 小时前
JavaScript AJAX 库
javascript·ajax
ianozo2 小时前
CTF 代码学习日记 PHP
java·学习·php
胡桃不是夹子2 小时前
vue登陆下拉菜单
前端·javascript·vue.js
大G哥2 小时前
用DeepSeek来帮助学习three.js加载3D太极模形
开发语言·前端·javascript·学习·ecmascript
锐小制2 小时前
十分钟学习编写Ridge页面脚本
前端·javascript
没有不重的名么2 小时前
MATLAB基础学习相关知识
数据结构·学习·matlab