我正在尝试在控制器中使用内置的ValidationPipe。
@Post('/password')
async changePassword(@Body(new ValidationPipe()) changePasswordSchema: ChangePasswordSchema, @Req() request) {
const { oldPassword, newPassword } = changePasswordSchema
return await this.usersService.changePassword(request.user.id, oldPassword, newPassword)
}
import { MinLength } from 'class-validator'
export class ChangePasswordSchema {
@MinLength(10)
readonly oldPassword: string
@MinLength(10)
readonly newPassword: string
}
验证无效。调试 validation.pipe.js 后,我发现未定义 元类型 ,这导致该值返回为是,无需转换或验证。
async transform(value, metadata) {
const { metatype } = metadata;
if (!metatype || !this.toValidate(metadata)) {
return value;
}
有什么办法解决吗?
谢谢 德克尔