相关疑难解决方法(0)

如何使用 dto 验证 Nestjs 中的对象数组

我正在尝试在 Nestjs 中使用 DTO 验证对象数组。我已经尝试过,但数据未得到验证。我尝试搜索很多但没有得到任何答案。这些是我的文件:

trivia.controller.ts 文件

import { Controller, Post, Body, ParseArrayPipe } from '@nestjs/common';
import { LoggerService } from '../logger/logger.service';
import { TriviaService } from './trivia.service';
import { PostTriviaScoreDto } from './dto/post-trivia-score.dto';

@Controller('trivia')
export class TriviaController {
  constructor(private readonly logger: LoggerService, private readonly triviaService: TriviaService) {}

    @Post('score')
    postTriviaScore(@Body(new ParseArrayPipe({ items: PostTriviaScoreDto })) postTriviaScoreDto: PostTriviaScoreDto) {
        this.logger.info('Trivia Controller : postTriviaScore : start');
        return this.triviaService.postTriviaScore(postTriviaScoreParamsDto, postTriviaScoreDto);
    }
}
Run Code Online (Sandbox Code Playgroud)

trivia.service.ts 文件

import { LoggerService } from '../logger/logger.service';
import { PostTriviaScoreDto } …
Run Code Online (Sandbox Code Playgroud)

validation dto typescript class-validator nestjs

8
推荐指数
1
解决办法
2万
查看次数

请求正文中的布尔参数在 NestJS api 中始终为真

在我的 API 中考虑这个端点:

@Post('/convert')
  @UseInterceptors(FileInterceptor('image'))
  convert(
    @UploadedFile() image: any,
    @Body(
      new ValidationPipe({
        validationError: {
          target: false,
        },
        // this is set to true so the validator will return a class-based payload
        transform: true,
        // this is set because the validator needs a tranformed payload into a class-based
        // object, otherwise nothing will be validated
        transformOptions: { enableImplicitConversion: true },
      }),
    )
    parameters: Parameters,
  ) {
    return this.converterService.start(image, parameters);
  }

Run Code Online (Sandbox Code Playgroud)

设置为parameters参数的请求正文包含一个称为laserMode布尔类型的属性,它在参数 DTO上进行验证:

  @IsDefined()
  @IsBoolean()
  public …
Run Code Online (Sandbox Code Playgroud)

typescript class-validator nestjs class-transformer

5
推荐指数
4
解决办法
7064
查看次数