التحقق من المدخلات ومعالجة الأخطاء
التحقق من المدخلات ومعالجة الأخطاء — نظام إدارة الأعراس والمناسبات ودعوات QR | Next.js وPrisma | أديب الصلوي
وقت الدراسة
12 دقيقة
المسار: تطوير نظام إدارة الأعراس ودعوات QR الوحدة: واجهات API والبنية الخلفية
مدخل إلى الدرس: التحقق من المدخلات ومعالجة الأخطاء
التحقق من المدخلات ومعالجة الأخطاء — نظام إدارة الأعراس والمناسبات ودعوات QR | Next.js وPrisma | أديب الصلوي
طريقة الدراسة: اقرأ التعريف، تتبّع المثال في الشرح، نفّذه بنفسك، ثم اختبر النتيجة والحالات الاستثنائية قبل الانتقال.
أهداف هذا الدرس
- تطبيق تحقق صندوقي على كل واجهة إنشاء/تعديل.
- توحيد معالجة أخطاء Prisma المعروفة (P2002...).
- رد رسائل عربية مفهومة دون كشف تفاصيل داخلية.
مثال
import { Prisma } from "@prisma/client";
export async function handleAction(fn: () => Promise) {
try {
return await fn();
} catch (err) {
if (err instanceof Prisma.PrismaClientKnownRequestError) {
if (err.code === "P2002")
return NextResponse.json(
{ ok: false, error: "قيمة مكررة: " + (err.meta?.target ?? "عمود") },
{ status: 409 }
);
if (err.code === "P2003")
return NextResponse.json(
{ ok: false, error: "مرجع غير موجود (كسر تكامل)" },
{ status: 400 }
);
}
console.error("Internal:", err);
return NextResponse.json(
{ ok: false, error: "خطأ internal غير متوقع" },
{ status: 500 }
);
}
} | كود Prisma | أوله | ما يفعله | الرسالة للمستخدم |
|---|---|---|---|
| P2002 | تكرار فريد | هلع الكتابة | قيمة موجودة بالفعل |
| P2003 | FK مفقود | صلة في صلاحية | معطى مرجع غير صالح |
| P2025 | سجل غير موجود | findFirst/update فشل | لا يوجد هذا السجل |
| P2000 | طول زائد | القيمة أطول من العمود | قيمة طويلة جداً |
المخطط: توزيع مسؤولية معالجة الأخطاء
flowchart TD
U["الواجهة (form/scan)"] --> M["موحّد (handleAction)
التحقق الميداني (zod)
رصد أخطاء Prisma"]
M --> R{"Success / Error"}
R --> S["الشاشة تعرض رسالة حسب حالة ok"]
تمرين تطبيقي: ضع فحصاً يرفض phone أطول من 15 حين إضافة ضيف، ثم أضف try/catch موحداً يُرجع 400 برسالة واضحة، واختبره بطول كبير.
أخطاء شائعة يجب تفاديها
- ترك أخطاء Prisma تصدر نصوصاً إنجليزية خام (P2002...).
- الاستمرار بـ console.error بعد الرد الصريح فتسرب تلميحات.
- التحقق اليدوي بلا زود في الهوية — تُخترق بأن يكسر الحقل الطوابق.
معجم مصطلحات الدرس
- P2002
- رمز خطأ Prisma عن تكرار قيد فريد.
- zod
- مكتبة تحقق صارم من تصميم Typescript (سيُدخل في الفصل القادم).
- خرائط أخطاء
- جدول يدوي يعيد ترجمة رموز قاعدة إلى رسائل عربية.
مراجعة وتمرين تثبيت المهارة
اختبار سريع: اشرح بعبارتك معنى «التحقق من المدخلات ومعالجة الأخطاء»، ثم بيّن أين ستستخدمه داخل نظام تسجيل حضور دعوات مناسبة عبر رمز QR، وما الخطأ الذي يجب اختباره قبل الاعتماد على الحل.
تحدٍّ إضافي: غيّر شرطًا واحدًا في التطبيق، وتوقع النتيجة، ثم نفّذ الاختبار وفسّر الاختلاف.