Lire les erreurs de validation
Fait partie de la section API REST du Journey Node.js de Coddy. Leçon 10 sur 25.
Un client doit savoir quelle entrée corriger. Lorsque safeParse échoue, result.error décrit les problèmes. z.flattenError les organise en deux groupes : fieldErrors pour les champs nommés, et formErrors pour l’objet dans son ensemble.
const issues = z.flattenError(result.error);
const fields = Object.keys(issues.fieldErrors);Si le type du titre est incorrect, fields contient title. Object.keys renvoie un tableau des noms de propriétés. Appelez flattenError uniquement dans la branche d’échec. En cas de réussite, il n’y a pas d’erreur à aplatir. Ce schéma vérifie les champs qu’il énumère. Les erreurs strictes au niveau de l’objet sont présentées dans Schémas avec zod.
Object.keys(fieldErrors) donne les noms des champs. Sa méthode sort() classe ces noms par ordre alphabétique.
Défi
FacileIl s’agit d’un petit projet d’entraînement. Sa configuration est fournie ; modifie uniquement exercise.js.
En cas de réussite, renvoie {"fields":[]}. En cas d’échec, renvoie les noms dans fieldErrors, triés par ordre alphabétique. Une requête POST avec {"title":42,"done":"yes"} vers /result renvoie {"fields":["done","title"]}. Un titre valide et une valeur booléenne donnent une liste vide.
La requête initiale GET /result utilise l’exemple fourni {"title": 42, "done": "yes"}. Utilise POST /result avec un corps JSON pour essayer d’autres valeurs.
Essayez vous-même
import { z } from 'zod';
const Task = z.object({ title: z.string(), done: z.boolean() });
export function exercise(body) {
return { fields: [] };
}
Toutes les leçons de API REST
1Ressources et verbes
Ressources et URLCréer avec POST4Navigateurs, versions et configuration
Qu’est-ce qu’une origineAutoriser une autre origineCORSUne page qui appelle l’API2Validation et erreurs
Valider les entréesEntraînez-vous par vous-même : Playground Express