乐趣区

关于nestjs:NestJS-校验数据类型

记录当 NestJSbody申请体是数组对象时,dto的应用:

dto.ts:

import {IsNumber, Min, IsNotEmpty, IsOptional, IsString} from 'class-validator';

export class UserDto {@IsNotEmpty()
  @IsString()
  readonly name!: string;

  @IsNotEmpty()
  @IsNumber()
  @Min(0)
  readonly age!: number;

  @IsNotEmpty()
  @IsString()
  readonly city!: string;

  @IsOptional()
  @IsString()
  readonly description?: string;
}

controller.ts

import {UserDto} from "./dto";
import {
  Controller,
  Post,
  Body,
  ParseArrayPipe
} from "@nestjs/common";

@Controller("/")
export class TestController {@Post("test/dto")
  public async userInfo(
    @Body(
      new ParseArrayPipe({items: UserDto,}))
    data: UserDto[]) {return 'request success'}
} 

成果:
error:

success

退出移动版