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