قراءة أخطاء التحقق
جزء من قسم واجهات 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() هذه الأسماء أبجديًا.
التحدي
سهلهذا مشروع تدريبي صغير. إعداد المشروع جاهز؛ عدّل 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
1الموارد والأفعال
الموارد وعناوين URLالإنشاء باستخدام POST4المتصفحات والإصدارات والإعدادات
ما هو المصدرالسماح لمصدر آخرCORSصفحة تستدعي API2التحقق والأخطاء
التحقق من المدخلاتتدرّب بنفسك: Playground لـ Express