Menu
CoddyTech

Validierungsfehler lesen

Teil des Abschnitts REST-APIs der Node.js-Journey von Coddy. Lektion 10 von 25.

Ein Client muss wissen, welche Eingabe korrigiert werden muss. Wenn safeParse fehlschlägt, beschreibt result.error die Probleme. z.flattenError ordnet sie zwei Gruppen zu: fieldErrors für benannte Felder und formErrors für das Objekt als Ganzes.

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

Bei einem falschen Titeltyp enthält fields den Eintrag title. Object.keys gibt ein Array mit den Eigenschaftsnamen zurück. Rufe flattenError nur im Fehlerzweig auf. Bei Erfolg gibt es keinen Fehler, der abgeflacht werden müsste. Dieses Schema prüft die aufgeführten Felder. Strenge Fehler auf Objektebene werden in „Schemas mit zod“ eingeführt.

Object.keys(fieldErrors) liefert die Feldnamen. Seine Methode sort() ordnet diese Namen alphabetisch.

challenge icon

Aufgabe

Einfach

Dies ist ein kleines Übungsprojekt. Das Setup ist vorgegeben; bearbeite nur exercise.js.

Gib bei Erfolg {"fields":[]} zurück. Gib bei einem Fehler die Namen in fieldErrors alphabetisch sortiert zurück. Sende {"title":42,"done":"yes"} mit POST an /result; die Antwort lautet {"fields":["done","title"]}. Ein gültiger Titel und ein boolescher Wert ergeben eine leere Liste.

Der anfängliche Aufruf von GET /result verwendet das bereitgestellte Beispiel {"title": 42, "done": "yes"}. Verwende POST /result mit einem JSON-Body, um andere Eingaben auszuprobieren.

Probier es selbst

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

Alle Lektionen in REST-APIs

Übe selbstständig: Express-Playground