【问题标题】:Nestjs 7 upgrade class-validator issueNestjs 7 升级类验证器问题
【发布时间】:2020-12-04 00:55:19
【问题描述】:

我们将应用迁移到 NestJS 7 版本,之后所有的类验证错误只返回一种类型的错误。

{
  "code": 400,
  "message": "Bad Request",
  "detail": "Bad Request Exception"
} 

在升级之前,它会为任何班级意志抛出适当的错误消息。应用启动级别配置如下。我还将 class-validator 和 class-transfoer 包升级到了最新版本。

 const validationPipeOptions: ValidationPipeOptions = {
        disableErrorMessages: false, 
        whitelist: true, 
        dismissDefaultMessages: false,
        forbidNonWhitelisted: false,
        forbidUnknownValues: true,
        skipMissingProperties: false,
        transform: true, 
    };
    app.useGlobalPipes(new ValidationPipe(validationPipeOptions));

升级前的错误

{
    "code": 400,
    "message": "Bad Request",
    "detail": [
        {
            "target": {
                "name": 4
            }
        },
        "value": 4,
        "property": "name",
        "constraints": {
            "isString": "name must be a string"
        }
    ]
}

【问题讨论】:

    标签: node.js typescript validation nestjs


    【解决方案1】:

    如从 v6 到 v7 的 migration guide 中所述,如果您喜欢旧的错误消息,它以上述格式提供详细信息,您可以将 exceptionFactory 属性设置为 excpetionFactory: (errors) => new BadRequestException(errors)

    【讨论】:

      猜你喜欢
      • 2023-02-22
      • 1970-01-01
      • 2021-02-03
      • 2022-08-02
      • 1970-01-01
      • 2019-08-26
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      相关资源
      最近更新 更多