Odczytywanie błędów walidacji
Część sekcji API REST ścieżki Node.js w Coddy. Lekcja 10 z 25.
Klient musi wiedzieć, które dane wejściowe poprawić. Gdy safeParse kończy się niepowodzeniem, result.error opisuje problemy. z.flattenError porządkuje je w dwie grupy: fieldErrors dla nazwanych pól i formErrors dla całego obiektu.
const issues = z.flattenError(result.error);
const fields = Object.keys(issues.fieldErrors);W przypadku nieprawidłowego typu tytułu fields zawiera title. Object.keys zwraca tablicę nazw właściwości. Wywołuj flattenError tylko w gałęzi obsługującej niepowodzenie. W przypadku powodzenia nie ma błędu do spłaszczenia. Ten schemat sprawdza wymienione w nim pola. Błędy na poziomie ścisłego obiektu są omawiane w sekcji „Schematy z zod”.
Object.keys(fieldErrors) zwraca nazwy pól. Jego metoda sort() porządkuje te nazwy alfabetycznie.
Wyzwanie
ŁatwyTo niewielki projekt ćwiczeniowy. Konfiguracja jest już przygotowana; edytuj tylko exercise.js.
W przypadku powodzenia zwróć {"fields":[]}. W przypadku niepowodzenia zwróć nazwy w fieldErrors, posortowane alfabetycznie. Wyślij POST z {"title":42,"done":"yes"} na adres /result, aby otrzymać {"fields":["done","title"]}. Prawidłowy tytuł i wartość logiczna dają pustą listę.
Początkowe żądanie GET /result korzysta z podanego przykładu {"title": 42, "done": "yes"}. Użyj POST /result z treścią w formacie JSON, aby wypróbować inne dane wejściowe.
Spróbuj swoich sił
import { z } from 'zod';
const Task = z.object({ title: z.string(), done: z.boolean() });
export function exercise(body) {
return { fields: [] };
}
Wszystkie lekcje w sekcji API REST
1Zasoby i czasowniki
Zasoby i URL-eTworzenie za pomocą POST4Przeglądarki, wersje i konfiguracja
Czym jest originZezwalanie na dostęp z innego originCORSStrona wywołująca API2Walidacja i błędy
Walidacja danych wejściowychPoćwicz samodzielnie: Edytor online Express