【问题标题】:How to set custom error message IsEnum of class-validator in nestjs如何在nestjs中设置类验证器的自定义错误消息IsEnum
【发布时间】:2022-08-19 17:24:21
【问题描述】:

我正在使用nestjs,我正在使用@IsEnum(Enum) 关键字。

如果枚举中可以输入的值为A, B, C,如果输入B1,则会出现错误。

response: {
    statusCode: 400,
    message: [ \'each value in tag must be a valid enum value\' ],
    error: \'Bad Request\'
  },
  status: 400

它只是显示上面的日志。我想知道什么值是错误的。

如果我输入了A,B1,C,我想收到一条错误消息说“B1 的值不正确”。

@IsEnum(EnumName, { each: true })
  enumValues: EnumName[] = [];

    标签: typescript enums class-validator


    【解决方案1】:
      import { difference } from 'lodash';
    
      @IsEnum(EnumName, {
        message: (args: ValidationArguments) => {
          const { value, constraints } = args;
          const correctValues = Object.values(constraints[0]);
          const incorrectValues = difference(value, correctValues);
          return `The values of ${incorrectValues} are incorrect`;
        },
        each: true,
      })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-05
      • 2011-10-12
      • 2018-09-26
      • 1970-01-01
      • 2023-03-31
      • 2016-04-03
      • 1970-01-01
      相关资源
      最近更新 更多