Menu
CoddyTech

Membaca error validasi

Termasuk bagian REST API dalam perjalanan Node.js di Coddy. Pelajaran 10 dari 25.

Client perlu mengetahui input mana yang harus diperbaiki. Saat safeParse gagal, result.error menjelaskan masalahnya. z.flattenError mengelompokkannya menjadi dua kelompok: fieldErrors untuk field bernama, dan formErrors untuk keseluruhan object.

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

Untuk tipe title yang salah, fields berisi title. Object.keys mengembalikan array nama property. Panggil flattenError hanya pada cabang kegagalan. Saat berhasil, tidak ada error untuk diratakan. Schema ini memeriksa field yang tercantum. Error tingkat object yang ketat diperkenalkan di bagian Schemas with zod.

Object.keys(fieldErrors) memberikan nama-nama field. Method sort() mengurutkan nama-nama itu secara alfabetis.

challenge icon

Tantangan

Mudah

Ini adalah proyek latihan kecil. Penyiapannya sudah disediakan, edit hanya exercise.js.

Jika berhasil, kembalikan {"fields":[]}. Jika gagal, kembalikan nama-nama dalam fieldErrors, diurutkan secara alfabetis. Kirim {"title":42,"done":"yes"} dengan metode POST ke /result untuk mendapatkan {"fields":["done","title"]}. Title yang valid dan boolean akan menghasilkan list kosong.

GET /result awal menggunakan contoh yang disediakan {"title": 42, "done": "yes"}. Gunakan POST /result dengan body JSON untuk mencoba input lain.

Coba sendiri

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

Semua pelajaran di REST API

Latihan sendiri: Playground Express