NahdaAIنهضة
Node.js • المستوى الرابع • الدرس 2

المشروع النهائي - بناء Backend متكامل والنشر السحابي

العودة لفهرس المستوى

أهداف المشروع الشامل والنشر

  • تجميع كافة المفاهيم: Express، التوثيق بـ JWT، التشفير، والـ Middleware.
  • إدارة متغيرات البيئة process.env لمنع تسريب المفاتيح الحساسة.
  • التعامل مع رموز الاستجابة 401 Unauthorized و 403 Forbidden بمرونة.
  • نشر خادم Node.js سحابياً على منصات مثل Render أو Vercel أو Railway.

1. خطة النشر المباشر لخوادم Backend

تتطلب عملية النشر للإنتاج (Production) حماية الاعتمادات عن طريق متغيرات البيئة process.env.PORT و process.env.JWT_SECRET لتتمكن السيرفرات السحابية من التعيين التلقائي.

json
// package.json - إعداد ملف التشغيل للإنتاج
{
  "name": "backend-api-project",
  "version": "1.0.0",
  "main": "server.js",
  "scripts": {
    "start": "node server.js",
    "dev": "nodemon server.js"
  },
  "dependencies": {
    "express": "^4.19.2",
    "jsonwebtoken": "^9.0.2",
    "dotenv": "^16.4.5"
  }
}

2. خطوات النشر السحابي (Deployment Pipeline)

1️⃣ GitHub Repo

رفع الأكواد وإضافة .gitignore لاستبعاد مجلد node_modules وملف .env.

2️⃣ Environment Variables

ضبط القيم الحساسة والمفاتيح بداخل لوحة تحكم استضافة Render أو Railway.

3️⃣ Build & Deploy

تعيين أمر البدء npm start ليتم إنشاء الحاوية وتشغيل خادمك أونلاين.

التطبيق العملي المباشر

تحدي إتمام المسار النهائي: بناء محاكي خادم متكامل

قم بالتعديل على الكود في المحرر أدناه لاستكمال خادم Backend جاهز للإنتاج:

  1. غيّر بنية authMiddleware لتُرجع كائناً { valid, status, error } بدل boolean.
  2. أضف فحصاً للتوكِن داخل authMiddleware: أرجع status: 401 عند غياب الرأس، وstatus: 403 عند توكِن خاطئ.
  3. استخدم authorization.split(' ')[1] لاستخراج قيمة التوكِن.
  4. أضف process.env.NODE_ENV أو process.env.JWT_SECRET للاستفادة من متغيرات البيئة.
  5. أضف 4 اختبارات كاملة (401، 403، 200، تفاصيل الخادم) عبر console.log.
⏳ جارٍ تحميل المحرر التفاعلي...