nest学习摘要(1)

50 阅读1分钟

nest入门

1.nest接口风格

  • get
  • post
  • delete
  • Patch
//通过接口的调用方式来判断的
//不同于其他接口 http:aa.com?a=1;
//nest http:aa.com/id == http:aa.com/123

nset版本控制

在mian.ts内设置

// 导入NestJS核心工厂类,用于创建应用实例
import { NestFactory } from '@nestjs/core';
import { VersioningType } from '@nestjs/common';
// 导入根模块,整个应用的入口模块
import { AppModule } from './app.module';

/**
 * 应用程序启动函数 - 程序的入口点
 * 就像按下电脑的开机按钮,启动整个NestJS应用
 */
async function bootstrap() {
  // 使用NestFactory创建应用实例,传入根模块AppModule
  const app = await NestFactory.create(AppModule);
  //这里进行的是版本控制,通过URL控制
  app.enableVersioning({
    type:VersioningType.URI
  })
  
  await app.listen(process.env.PORT ?? 3000);
  console.log('应用已启动,访问地址: http://localhost:3000');
}

bootstrap();

设置好之后,就可以在想操作的controller里设置

import { Controller, Get, Post, Body, Patch, Param, Delete,Version } from '@nestjs/common';
                                                         👆👆👆👆
import { UserService } from './user.service';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
//这种是整体控制版本
@Controller({
  path:'user',
  version:'1'
})
export class UserController {
  constructor(private readonly userService: UserService) {}

  @Post()
  //这种是单独控制
      //注:import { Version }from '@nestjs/common'; 最上方这里必须引入才可以 👆指的地方
  @Version('1')
  create(@Body() createUserDto: CreateUserDto) {
    return this.userService.create(createUserDto);
    
  }
  ...
  }

Code码规范

  • 200 OK
  • 304 协商缓存
  • 400 参数错误
  • 401 token错误
  • 403 验证失败
  • 404 接口不存在
  • 500 服务端错误
  • 502上游接口问题或服务器问题

请求示例

1.get请求
@Get()
get(@Query){
}
@Post()
get(@Body){
}
//动态参数
@Get(":id")
get(@Param('id') param,@Headers() header){
  // 这里的param就是传来id的值
  // Headers 请求头里的数据可以通过header获取到
}
@HTTP