Menu
CoddyTech

قراءة أخطاء التحقق

جزء من قسم واجهات REST API في رحلة Node.js على Coddy. الدرس 10 من 25.

يحتاج العميل إلى معرفة الإدخال الذي يجب إصلاحه. عندما يفشل safeParse، يصف result.error المشكلات. ينظّم z.flattenError هذه المشكلات في مجموعتين: fieldErrors للحقول المُسمّاة، وformErrors للكائن ككل.

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

عندما يكون نوع العنوان غير صحيح، تحتوي fields على title. تُرجع Object.keys مصفوفة بأسماء الخصائص. استدعِ flattenError في فرع الفشل فقط. عند النجاح، لا يوجد خطأ لتسطيحه. يتحقق هذا المخطط من الحقول المدرجة فيه. تُقدَّم أخطاء مستوى الكائن الصارمة في «المخططات باستخدام zod».

تعطي Object.keys(fieldErrors) أسماء الحقول. وترتّب الطريقة sort() هذه الأسماء أبجديًا.

challenge icon

التحدي

سهل

هذا مشروع تدريبي صغير. إعداد المشروع جاهز؛ عدّل exercise.js فقط.

عند النجاح، أعد {"fields":[]}. وعند الفشل، أعد الأسماء الموجودة في fieldErrors مرتبة أبجديًا. إرسال {"title":42,"done":"yes"} باستخدام POST إلى /result يعيد {"fields":["done","title"]}. العنوان الصالح والقيمة المنطقية يعيدان قائمة فارغة.

يستخدم الطلب الأولي GET /result المثال المقدّم {"title": 42, "done": "yes"}. استخدم POST /result مع نص طلب بتنسيق JSON لتجربة مدخلات أخرى.

جرّب بنفسك

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

جميع دروس واجهات REST API

تدرّب بنفسك: Playground لـ Express