NestJS 管道 Joi.validate() (不是函数)
NestJS pipe Joi.validate() (is not a function)
我尝试在带管道的 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 is not a function
我做了一个PR来更新https://docs.nestjs.com,貌似已经部署好了,大家可以参考一下。
@hapijs/joi
已弃用 Joi.validate
版本 16,您必须直接在架构上调用 .validate
。
用schema.validate
代替Joi.validate
,例如:
const schema = Joi.object({
name: Joi.string().min(3).required()
});
const result = schema.validate(req.body);
了解更多信息
我尝试在带管道的 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 is not a function
我做了一个PR来更新https://docs.nestjs.com,貌似已经部署好了,大家可以参考一下。
@hapijs/joi
已弃用 Joi.validate
版本 16,您必须直接在架构上调用 .validate
。
用schema.validate
代替Joi.validate
,例如:
const schema = Joi.object({
name: Joi.string().min(3).required()
});
const result = schema.validate(req.body);
了解更多信息