Menu
CoddyTech

Geprüfte Daten verwenden

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

Ein Schema kann entweder geprüfte Daten oder Informationen zu einem Problem zurückgeben. safeParse gibt ein Objekt zurück, dessen Feld success angibt, was passiert ist. Bei Erfolg enthält data den geprüften Wert.

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

Regeln können Werte verändern, statt sie nur zurückzuweisen. z.string().trim() entfernt umgebende Leerzeichen. Speichere die geprüften Daten, damit diese Änderung erhalten bleibt. Wenn du den ursprünglichen Body speicherst, kommen die unerwünschten Leerzeichen zurück. Das bereitgestellte Schema enthält bereits seine Regeln.

trim() entfernt umgebende Leerzeichen. Das darauf folgende min(1) verlangt mindestens ein Zeichen, sodass ein Titel, der nur Leerzeichen enthält, die Prüfung nicht besteht.

challenge icon

Aufgabe

Einfach

Dies ist ein kleines Übungsprojekt. Die Einrichtung ist bereits vorhanden; bearbeite nur exercise.js.

Verwende das bereitgestellte Task-Schema. Gib bei Erfolg {"ok":true,"title":...} mit dem getrimmten Titel zurück oder bei einem Fehler {"ok":false}. Ein POST mit {"title":" Read "} an /result ergibt {"ok":true,"title":"Read"}. Ein Titel mit dem Wert 42 ergibt {"ok":false}.

Probiere auch {"title":" "} aus: Es muss {"ok":false} zurückgeben.

Das anfängliche GET /result verwendet das bereitgestellte Beispiel {"title": " Read "}. 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().trim().min(1) });
export function exercise(body) {
    return { ok: true, title: body.title };
}

Alle Lektionen in REST-APIs

Übe selbstständig: Express-Playground