我尝试在带有管道的 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;
}
}
它不能正常工作。
TypeError:Joi.validate不是函数
答案 0 :(得分:1)
我已经进行了PR更新https://docs.nestjs.com,并且看来它已经部署完毕,因此您可以参考它。
@hapijs/joi
在版本16上已弃用Joi.validate
,您必须直接在架构上调用.validate
。
答案 1 :(得分:0)