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: '请求成功!!!!!!'
    }
  }
}
相关推荐
科技林总33 分钟前
2.2 图论应用
学习
小二·1 小时前
Vue 3 组件通信全方案详解:Props/Emit、provide/inject、事件总线替代与组合式函数封装
前端·javascript·vue.js
陌上明苏1 小时前
.NET学习-依赖注入、配置系统、日志系统
学习
知识分享小能手1 小时前
Ubuntu入门学习教程,从入门到精通, Ubuntu 22.04中的Shell编程详细知识点(含案例代码)(17)
linux·学习·ubuntu
大山老树2 小时前
行动教练学习笔记
笔记·学习
Moment2 小时前
如何在前端编辑器中实现像 Ctrl + Z 一样的撤销和重做
前端·javascript·面试
小猪猪屁2 小时前
权限封装不是写个指令那么简单:一次真实项目的反思
前端·javascript·vue.js
我的写法有点潮3 小时前
如何取消Vue Watch监听
前端·javascript·vue.js
xkxnq3 小时前
第一阶段:Vue 基础入门(第 6 天)
前端·javascript·vue.js
神仙刘3 小时前
解决Vue router history 静态资源访问404,请求链接被加上了path的前一部分
前端·javascript·vue.js