Menu
CoddyTech

Utiliser les données validées

Fait partie de la section API REST du Journey Node.js de Coddy. Leçon 8 sur 25.

Un schéma peut renvoyer soit des données vérifiées, soit des informations sur un problème. safeParse renvoie un objet dont le champ success indique lequel des deux cas s’est produit. En cas de succès, data contient la valeur vérifiée.

const result = Book.safeParse(body);
if (result.success) {
    return result.data;
}
return {error: 'Invalid book'};

Les règles peuvent transformer les valeurs autant que les rejeter. z.string().trim() supprime les espaces autour de la chaîne. Enregistre les données vérifiées pour conserver cette modification. Enregistrer le corps d’origine réintroduirait les espaces indésirables. Le schéma fourni possède déjà ses règles.

trim() supprime les espaces autour de la chaîne. Le min(1) qui suit exige au moins un caractère : un titre composé uniquement d’espaces échoue donc à la vérification.

challenge icon

Défi

Facile

Il s’agit d’un petit projet d’entraînement. Sa configuration est fournie ; modifie uniquement exercise.js.

Utilise le schéma Task fourni. En cas de réussite, renvoie {"ok":true,"title":...} avec le titre sans espaces superflus, ou {"ok":false} en cas d’échec. Envoyer POST {"title":" Read "} à /result renvoie {"ok":true,"title":"Read"}. Un titre égal à 42 renvoie {"ok":false}.

Essaie aussi {"title":" "} : la réponse doit être {"ok":false}.

La requête initiale GET /result utilise l’exemple fourni {"title": " Read "}. Utilise POST /result avec un corps JSON pour essayer d’autres entrées.

Essayez vous-même

import { z } from 'zod';
const Task = z.object({ title: z.string().trim().min(1) });
export function exercise(body) {
    return { ok: true, title: body.title };
}

Toutes les leçons de API REST

Entraînez-vous par vous-même : Playground Express