NestJS 管道 Joi.validate()(不是函数)

pir*_*max 3 hapijs nestjs

我尝试在带有管道的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