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.
Sfida
FacileQuesto è 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
1Risorse e verbi
Risorse e URLCreare con POST4Browser, versioni e configurazione
Che cos'è un'origineConsentire un'altra origineCORSUna pagina che chiama l'API2Validazione ed errori
Convalidare l'inputEsercitati da solo: Playground Express