Menu
CoddyTech

Leggere gli errori di validazione

Fa parte della sezione API REST del percorso Node.js di Coddy. Lezione 10 di 25.

Un client deve sapere quale input correggere. Quando safeParse fallisce, result.error descrive i problemi. z.flattenError li organizza in due gruppi: fieldErrors per i campi con nome e formErrors per l’oggetto nel suo insieme.

const issues = z.flattenError(result.error);
const fields = Object.keys(issues.fieldErrors);

Se il tipo del titolo è errato, fields contiene title. Object.keys restituisce un array dei nomi delle proprietà. Chiama flattenError solo nel ramo di fallimento. In caso di successo non c’è alcun errore da appiattire. Questo schema controlla i campi elencati. Gli errori a livello di oggetto strict vengono introdotti in Schemas with zod.

Object.keys(fieldErrors) restituisce i nomi dei campi. Il suo metodo sort() dispone i nomi in ordine alfabetico.

challenge icon

Sfida

Facile

Questo è un piccolo progetto di esercitazione. La configurazione è già fornita; modifica solo exercise.js.

In caso di successo, restituisci {"fields":[]}. In caso di errore, restituisci i nomi in fieldErrors, in ordine alfabetico. Invia {"title":42,"done":"yes"} con POST a /result per ottenere {"fields":["done","title"]}. Un titolo valido e un valore booleano producono una lista vuota.

La GET /result iniziale usa l'esempio fornito {"title": 42, "done": "yes"}. Usa POST /result con un corpo JSON per provare altri input.

Provalo tu

import { z } from 'zod';
const Task = z.object({ title: z.string(), done: z.boolean() });
export function exercise(body) {
    return { fields: [] };
}

Tutte le lezioni di API REST

Esercitati da solo: Playground Express