1

我正在研究一个 DTO(数据传输对象),我根据class validator提供的内容直接进行验证

这是一个示例:

import { IsDefined, IsNotEmpty, Min, ValidatePromise } from 'class-validator';

export class UpdateMentorParamDto {
  @IsDefined()
  @IsNotEmpty()
  @Min(1, {
    message: 'the Id in the params is supposed to be a valid id number greater than 0',
  })
  @ValidatePromise()
  id: number;

}

这就是我在控制器中使用它的方式

import { UpdateMentorParamDto } from './dtos/update-mentor-param.dto';
import { Controller, Put, Param, UsePipes, ValidationPipe } from '@nestjs/common';

@Controller('/users')
export class UsersController {
  @Put('/:id')
  @UsePipes(ValidationPipe)
  updateMentor(@Param() params: UpdateMentorParamDto) {
    // some code
  }
}

我在这里看到可以使用类验证器进行 Promise 验证。

他们建议我们这样做:

import {ValidatePromise, Min} from "class-validator";

export class Post {

    @Min(0)
    @ValidatePromise()
    userId: Promise<number>;
}

我的问题是这样的:

在继续更新之前,我需要确保在参数中提供了 ID 的记录确实存在于数据库中。我认为可以使用类验证器自述文件中建议的 Promise 验证方法来做到这一点。

如果真的有可能,我该如何使用上面显示的结构来做到这一点?

4

0 回答 0