البرمجة

توجيه الواجهات باستخدام Express.js

لديك حاجة لتشغيل تطبيقين مختلفين بواجهتين مستخدم مختلفتين، حيث يكون التطبيق الرئيسي متاحًا على example.com ولوحة التحكم (Dashboard) متاحة على dashboard.example.com. ترغب في تحقيق هذا دون الحاجة إلى تشغيل خوادم (servers) متعددة. في هذه الحالة، يمكنك استخدام Express.js لإنشاء تطبيق واحد يدير كلا الواجهتين.

لتحقيق ذلك، يمكنك استخدام Express.js للتعامل مع طلبات HTTP لكل واجهة مستخدم. يمكنك استخدام middleware مثل “vhost” لتوجيه الطلبات الواردة إلى مجالات مختلفة (domains) إلى المعالج الصحيح داخل التطبيق الواحد.

فيما يلي خطوات توضيحية لتحقيق هذا:

  1. تثبيت المكونات اللازمة: قم بتثبيت Express.js و “vhost” باستخدام npm:
bash
npm install express vhost
  1. إنشاء التطبيق الرئيسي: قم بإنشاء ملف JavaScript يحتوي على تطبيق Express الرئيسي:
javascript
const express = require('express'); const vhost = require('vhost'); const app = express(); // التطبيق الرئيسي على example.com const mainApp = express(); mainApp.get('/', (req, res) => { res.send('Welcome to example.com'); }); // لوحة التحكم على dashboard.example.com const dashboardApp = express(); dashboardApp.get('/', (req, res) => { res.send('Welcome to dashboard.example.com'); }); // توجيه المجالات إلى التطبيقات المناسبة app.use(vhost('example.com', mainApp)); app.use(vhost('dashboard.example.com', dashboardApp)); // بدء الخادم على منفذ معين const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`Server is running on port ${PORT}`); });
  1. تكوين DNS: قم بضبط إعدادات DNS الخاصة بك لتوجيه example.com و dashboard.example.com إلى عنوان IP الخاص بالخادم الخاص بك.

  2. تكوين Nginx (اختياري): إذا كنت تستخدم Nginx كخادم ويب أمامي، يمكنك تكوينه لتوجيه الطلبات إلى التطبيق الصحيح باستخدام بروتوكولات مثل reverse proxy.

باستخدام هذه الطريقة، يمكنك تشغيل كلا التطبيقين داخل خادم واحد بدون الحاجة إلى خوادم (servers) متعددة. الآن يمكنك الوصول إلى التطبيق الرئيسي عبر example.com ولوحة التحكم عبر dashboard.example.com.

المزيد من المعلومات

بالطبع، سأواصل إكمال المقال لشرح المزيد من التفاصيل والاستفادة القصوى من هذا النهج.

  1. التعامل مع الجلسات (Sessions): في بعض الأحيان، قد تحتاج إلى مشاركة بيانات الجلسة بين التطبيقين. يمكنك استخدام حزمة مثل “express-session” لإدارة الجلسات ومشاركتها عبر التطبيقات المختلفة.

  2. التعامل مع المصادقة والترخيص (Authentication & Authorization): إذا كانت هناك حاجة للمصادقة والترخيص في كلا التطبيقين، يمكنك استخدام أدوات مثل “Passport.js” لتنفيذ استراتيجيات المصادقة المختلفة ومشاركة بيانات المصادقة عبر التطبيقات.

  3. الإعدادات البيئية (Environment Settings): يمكنك استخدام متغيرات البيئة لتكوين التطبيقات بحيث يمكنك تكوينها بشكل منفصل لكل تطبيق. هذا يمكن أن يكون مفيدًا لتخزين معلومات الاتصال بقاعدة البيانات وإعدادات أخرى.

  4. تجنب تكرار الشيفرة (DRY Principle): للحفاظ على الشفرة نظيفة وسهلة الصيانة، يمكنك تجنب تكرار الكود الخاص بالمنطق المشترك بين التطبيقين واستخدام وحدات (modules) مشتركة.

  5. اختبار الوحدات (Unit Testing): قم بكتابة اختبارات وحدات للتأكد من عملية التطبيقين بشكل صحيح، وتأكد من اختبار كل جزء من التطبيقات بشكل مستقل.

  6. مراقبة الأداء وتحسينه (Performance Monitoring & Optimization): قم بمراقبة أداء التطبيقين واعتماد إجراءات تحسين الأداء حسب الحاجة، مثل تخزين البيانات المؤقتة (caching) وتحسين استجابة الخادم.

باستخدام هذه الإرشادات، يمكنك بناء تطبيقين متعددين الواجهات بشكل فعال داخل خادم واحد باستخدام Express.js، مما يوفر لك الوقت والجهد ويحسن من هيكلية تطبيقاتك. الآن، يمكنك البدء في تطوير تطبيقاتك وجعلها متاحة بشكل فعال للمستخدمين عبر الويب.

زر الذهاب إلى الأعلى