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: '请求成功!!!!!!'
    }
  }
}
相关推荐
脑袋大大的1 小时前
JavaScript 性能优化实战:减少 DOM 操作引发的重排与重绘
开发语言·javascript·性能优化
速易达网络2 小时前
RuoYi、Vue CLI 和 uni-app 结合构建跨端全家桶方案
javascript·vue.js·低代码
耶啵奶膘3 小时前
uniapp+firstUI——上传视频组件fui-upload-video
前端·javascript·uni-app
JoJo_Way3 小时前
LeetCode三数之和-js题解
javascript·算法·leetcode
视频砖家3 小时前
移动端Html5播放器按钮变小的问题解决方法
前端·javascript·viewport功能
码荼5 小时前
学习开发之hashmap
java·python·学习·哈希算法·个人开发·小白学开发·不花钱不花时间crud
墨菲安全6 小时前
NPM组件 betsson 等窃取主机敏感信息
前端·npm·node.js·软件供应链安全·主机信息窃取·npm组件投毒
GISer_Jing6 小时前
Monorepo+Pnpm+Turborepo
前端·javascript·ecmascript
天涯学馆6 小时前
前端开发也能用 WebAssembly?这些场景超实用!
前端·javascript·面试