Menu
CoddyTech

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.

challenge icon

Wyzwanie

Łatwy

To 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

Poćwicz samodzielnie: Edytor online Express