在验证过程中使用自定义状态代码进行响应

Respond with a custom status code in validation process

我想在验证阶段更改状态代码。

import { IsEmail, IsNotEmpty } from 'class-validator';

export class CreateUserDto {
  @IsEmail()
  email: string;

  @IsNotEmpty()
  password: string;
}

有了这些规则,如果请求到达我们的端点并在请求正文中包含无效电子邮件 属性,应用程序将自动响应 400 错误请求代码。

我的问题是,是否可以将状态代码从 400 更改为 422(不可处理的实体)?

您必须创建一个 Filter 来捕获 BadRequestExceptions 并将它们自己转换为 422。无论您是只想更改状态代码还是整个错误响应,您应该具有对 res 对象的完全访问权限,然后能够进行更改。