我尝试在带有管道的NestJS上使用 Joi 验证器。
https://docs.nestjs.com/pipes#object-schema-validation
import * as Joi from '@hapi/joi';
import { PipeTransform, Injectable, ArgumentMetadata, BadRequestException } from '@nestjs/common';
@Injectable()
export class JoiValidationPipe implements PipeTransform {
constructor(
private readonly schema: Joi.ObjectSchema,
) {}
transform(value: any, metadata: ArgumentMetadata) {
const { error } = Joi.validate(value, this.schema);
if (error) {
throw new BadRequestException('Validation failed');
}
return value;
}
}
Run Code Online (Sandbox Code Playgroud)
它不能正常工作。
类型错误:Joi.validate 不是函数
小智 11
schema.validate
代替使用Joi.validate
,例如:
const schema = Joi.object({
name: Joi.string().min(3).required()
});
const result = schema.validate(req.body);
Run Code Online (Sandbox Code Playgroud)
或欲了解更多信息,请访问https://hapi.dev/family/joi/?v=16.1.8