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.
Tantangan
MudahIni 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
1Sumber Daya dan Kata Kerja
Sumber Daya dan URLMembuat dengan POST4Peramban, Versi, dan Konfigurasi
Apa Itu OriginMengizinkan Origin LainCORSHalaman yang Memanggil API2Validasi dan error
Memvalidasi inputLatihan sendiri: Playground Express