Website-Suche

node.js - NestJs - Class-validator gibt nicht das vollständige Validierungsfehlerobjekt zurück


Ich verwende class-validator in NestJS, um Validierungen wie diese zu erstellen:

export class LoginDTO {
@IsEmail()
@MinLength(4)
email: string;

@IsNotEmpty()
@MinLength(4)
password: string;

}

Es funktioniert, aber nicht wie erwartet. Das zurückgegebene Objekt sieht so aus :

{
"statusCode": 400,
"message": [
    "email must be longer than or equal to 4 characters",
    "email must be an email"
],
"error": "Bad Request"

}

Während ich möchte, dass es alle Informationen wie diese enthält:

{
    "statusCode": 400,
    [{
        target: /* post object */,
        property: "title",
        value: "Hello",
        constraints: {
        length: "$property must be longer than or equal to 10 characters"
    }]
    "error": "Bad Request"
}

Wie kann man vorgehen, um alle fehlenden Eigenschaften zurückzugeben?

Antwort #1

Dies war eine einschneidende Änderung in Nestv7. Aus dem Migrationsleitfaden: Wenn Sie die ValidationPipe verwenden, können Sie eine exceptionFactory-Eigenschaft wie folgt übergeben

exceptionFactory: (errors) => new BadRequestException(errors),

und es sollte dir geben, was du willst.

Verwandte Artikel