Node.js • المستوى الرابع • الدرس 1
العودة لفهرس المسارهيكلة معمارية المشروع الحقيقي (MVC Architecture)
أهداف الدرس العلمية
- تنظيم كود المشروع باستخدام نمط التصميم
MVC(Model-View-Controller). - فصل مسارات الراوتر عن المنطق التنفيذى لتسهيل التوسع واختبار الأكواد.
- إدارة كائنات Models للاتصال بقواعد البيانات واستخراج البيانات بأمان.
- معالجة استجابات أخطاء HTTP (404 Not Found & 400 Bad Request) بداخل المتحكمات.
1. ما هي معمارية MVC؟
نمط Model-View-Controller هو الهيكل القياسي لبناء تطبيقات البرمجة الخلفية الضخمة، حيث يهدف إلى فصل هواجس المشروع (Separation of Concerns) لمنع تضخم ملف واحد ولضمان سهولة التعديل والصيانة.
bash
📁 project-root/
├── 📁 models/ # 1. الموديل: معالجة قواعد البيانات والهياكل
│ └── userModel.js
├── 📁 controllers/ # 2. المتحكم: منطق التطبيق واستقبال الطلبات
│ └── userController.js
├── 📁 routes/ # 3. المسارات: توجيه الروابط إلى المتحكم المناسب
│ └── userRoutes.js
└── server.js # نقطة الانطلاق الرئيسية2. أدوار المكونات الثلاثة
📊 Model
يتعامل مباشرة مع قواعد البيانات (مثل MongoDB أو PostgreSQL) لإجراء استعلامات الإدراج والجلب.
⚙️ Controller
يحتوي على المنطق البرمجي، يتحقق من صحة المدخلات، ويقوم باستدعاء الموديل لإرجاع الاستجابة.
🛣️ Router
يستقبل الطلبات القادمة عبر الشبكة (مثل GET /api/users) ويوجهها نحو الدالة المناسبة بـ Controller.
التطبيق العملي المباشر
تحدي الدرس الأول: التوسع في نمط MVC ومعالجة الحالات
قم بالتعديل على الكود في المحرر أدناه لتحويل محاكي MVC إلى معالج كامل للبيانات:
- أضف دالة
createUserبداخلuserModelلإضافة مستخدم جديد إلى مصفوفة البيانات. - أضف تحققاً في
getUserProfileلإرجاع حالة404وعنوان"المستخدم غير موجود"عند عدم العثور عليه. - أضف دالة جديدة
createNewUserبداخلuserControllerتتحقق من وجودnameوemailوترجع حالة201عند النجاح. - قم بمحاكاة طلبات GET و POST واختبار طباعة المخرجات المنظمة بـ
console.log.
⏳ جارٍ تحميل المحرر التفاعلي...