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.
Aufgabe
EinfachDies 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
1Ressourcen und Verben
Ressourcen und URLsErstellen mit POST4Browser, Versionen und Konfiguration
Was ist ein Origin?Einen anderen Origin zulassenCORSEine Seite, die die API aufruft2Validierung und Fehler
Eingaben validierenÜbe selbstständig: Express-Playground