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.
