Satu Bentuk error
Termasuk bagian REST API dalam perjalanan Node.js di Coddy. Pelajaran 8 dari 18.
API-mu sekarang mengembalikan error dalam dua bentuk: string untuk 404 dan object dari zod untuk 400. Client harus menangani masing-masing bentuk. Pilih satu bentuk untuk setiap error:
{ "error": { "code": "not_found", "message": "Invoice not found" } }
{ "error": { "code": "invalid_body", "message": "Too small: ...",
"fields": { "amount": ["Too small: expected number to be >0"] } } }code untuk program: nilainya tidak pernah berubah, jadi client bisa membandingkannya. message untuk manusia, dan susunan katanya bisa berubah. fields memberi tahu form input mana yang harus ditandai. Tulis bentuk ini dalam satu fungsi dan panggil dari setiap route agar bentuknya tetap konsisten:
sendError(res, 404, 'not_found', 'Invoice not found');Tantangan
Mudah- Tulis
sendErrordierrors.js:{ "error": { "code", "message" } }dengan statusnya, sertafieldshanya jika diberikan. - Gunakan fungsi ini untuk setiap 404 (kode
not_found),sendInvaliduntuk setiap body yang tidak valid, dansendErrordi penangan errorserver.js(invalid_json,server_error).
Kirim DELETE /api/tasks/99, lalu lakukan POST dengan { "title": 123 }.
Coba sendiri
import { z } from 'zod';
// Mengirim setiap error dalam satu format:
// { "error": { "code": "not_found", "message": "Task not found" } }
// dengan "fields" ditambahkan hanya jika diberikan.
export const sendError = (res, status, code, message, fields) => {
// Kirim jawabanmu di sini
};
// Error zod sebagai 400: masalah pertamanya sebagai pesan, masalah setiap field
// di fields.
export const sendInvalid = (res, zodError) =>
sendError(res, 400, 'invalid_body', zodError.issues[0].message, z.flattenError(zodError).fieldErrors);
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di REST API
1Sumber Daya dan Kata Kerja
Sumber Daya dan URLMembuat dengan POSTLatihan sendiri: Playground Express