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

时间:2019-09-21 14:29:58

标签: 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;
  }
}

它不能正常工作。

  

TypeError:Joi.validate不是函数

2 个答案:

答案 0 :(得分:1)

我已经进行了PR更新https://docs.nestjs.com,并且看来它已经部署完毕,因此您可以参考它。

@hapijs/joi在版本16上已弃用Joi.validate,您必须直接在架构上调用.validate

答案 1 :(得分:0)

使用model.findAll代替findAll,例如:

schema.validate

或有关更多信息,请访问as QuickSort is really quick