express
Fast, unopinionated, minimalist web framework for node.
📦 نظرة عامة على المستودع expressjs/express
| العنصر | الوصف |
|---|
| الاسم | expressjs/express |
| الوصف | إطار عمل ويب سريع، غير موجه (unopinionated) وبسيط (minimalist) لمنصة Node.js |
| اللغة | JavaScript (ES 6+) |
| عدد النجوم | 69 240 نجم |
| الرابط | https://github.com/expressjs/express |
| الرخصة | MIT |
ما هو Express ولماذا يُستخدم؟
- Express هو مكتبة (مُحَزمة) تُسهّل بناء خوادم HTTP وتطبيقات الويب على منصة Node.js.
- يقدّم طبقة تجريدية خفيفة فوق الـ core الخاص بـ Node، فتكتب الكود بضع سطور بدلاً من التعامل مع الـ http module مباشرة.
- لماذا يُفضَّل؟
- سرعة الأداء: لا يضيف طبقات ثقيلة، لذا يظل استهلاك الذاكرة والوقت منخفضًا.
- مرونة عالية: لا يفرض عليك أي نمط معين للـ MVC، قواعد البيانات، أو محركات القوالب. يمكنك اختيار ما يناسب مشروعك.
- مجتمع ضخم: أكثر من 69 k نجمة، آلاف الحزم الإضافية (middleware) في منظمة
expressjs. - اختبار شامل: تغطية اختبارية عالية تجعل من السهل الاعتماد عليه في بيئات الإنتاج.
✨ أهم الميزات
| الميزة | الفائدة |
|---|
| توجيه (Routing) قوي | تعريف مسارات GET/POST/PUT/DELETE بسهولة، مع دعم معلمات المسار و‑regex. |
| أداء عالي | بنية خفيفة لا تُضيف عبئًا غير ضروري على طلبات HTTP. |
| اختبارات تغطية شبه كاملة | يضمن استقرار الإطار عبر إصدارات Node المختلفة. |
| مساعدات HTTP | عمليات إعادة التوجيه، التخزين المؤقت (caching)، إعداد رؤوس الاستجابة، إلخ. |
| نظام عرض (View) يدعم >14 محرك قوالب | EJS, Pug, Handlebars, Mustache وغيرها عبر مكتبة @ladjs/consolidate. |
| التفاوض على المحتوى (Content Negotiation) | إرجاع JSON، XML أو HTML بناءً على طلب العميل. |
| أداة توليد تطبيقات سريعة | express-generator لإنشاء هيكل مشروع جاهز في ثوانٍ. |
🛠️ التقنيات المستخدمة داخل المشروع
| التقنية | الدور |
|---|
| JavaScript (ES 6+) | لغة البرمجة الأساسية. |
| Node.js ≥ 18 | بيئة التشغيل. |
| npm | مدير الحزم لتثبيت Express وحزم التطوير. |
| Mocha + SuperTest | إطار اختبار الوحدة واختبار طلبات HTTP. |
| Coveralls | خدمة قياس تغطية الاختبارات. |
| GitHub Actions | CI/CD لتشغيل الاختبارات على Linux تلقائيًا. |
| @ladjs/consolidate | طبقة تجريدية موحدة لمحركات القوالب. |
| express-generator | أداة سطر أوامر لتوليد مشروع Express جاهز. |
📥 كيفية التثبيت والاستخدام
1. المتطلبات الأولية
- Node.js (الإصدار 18 أو أعلى).
- npm (يأتي مع Node).
# تحقق من الإصدارات
node -v # يجب أن تكون >= 18
npm -v
2. إنشاء مشروع جديد
# إنشاء ملف package.json
npm init -y
3. تثبيت Express
npm install express
4. مثال سريع (Hello World)
// index.js
import express from 'express' // أو const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello World');
});
app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
node index.js
# افتح المتصفح على http://localhost:3000
5. إنشاء تطبيق كامل باستخدام express-generator
# تثبيت الأداة عالميًا (الإصدار يطابق نسخة Express)
npm install -g express-generator@4
# توليد مشروع في مجلد جديد
express my-app
cd my-app
# تثبيت الاعتمادات
npm install
# تشغيل الخادم
npm start
الآن يمكنك زيارة http://localhost:3000 لرؤية القالب الافتراضي.
📚 الوثائق والمجتمع
👥 لمن يصلح Express؟
| الفئة | لماذا يناسبه Express |
|---|
| مطوروا الويب المبتدئين | بسيط وسهل الفهم، مثال “Hello World” في سطرين. |
| المشاريع الصغيرة والمتوسطة | لا تحتاج إلى بنية معقدة؛ يمكنك إضافة Middleware حسب الحاجة. |
| تطبيقات API (RESTful أو GraphQL) | يدعم بسهولة مسارات JSON، CORS، وتفاوض المحتوى. |
| تطبيقات الـ SPA | يُستَخدم كخادم ثابت (static) أو لتوجيه طلبات الـ API إلى الواجهة الأمامية. |
| المؤسسات التي تحتاج إلى تحكم كامل | لا يفرض ORM أو قالب؛ يمكنك دمج أي قاعدة بيانات أو محرك قوالب. |
| المجتمعات التعليمية | وثائق واضحة، أمثلة كثيرة، ودعم مجتمع كبير. |
🤝 المساهمة في المشروع
- القراءة: اطلع على ملف
CONTRIBUTING.md داخل المستودع. - قضايا الأمان: تُرفع عبر صفحة Security في GitHub وفقًا للسياسة المحددة.
- تشغيل الاختبارات
npm install # تثبيت الاعتمادات التطويرية
npm test # تشغيل جميع الاختبارات
- إرسال طلب سحب (Pull Request): اتبع إرشادات كتابة الكود، واكتب وصفًا واضحًا للتغييرات.
📄 خلاصة
- Express هو إطار عمل ويب خفيف، سريع، وغير موجه، يُستخدم لتطوير خوادم HTTP وتطبيقات الويب على Node.js.
- يوفر توجيهًا قويًا، دعمًا لمجموعة واسعة من محركات القوالب، ومجموعة غنية من الـ middleware.
- التثبيت سهل عبر
npm install express، ويمكن البدء بمثال بسيط في دقائق. - يناسب كل من المبتدئين والمحترفين، من التطبيقات الصغيرة إلى خدمات الـ API الكبيرة.
- بفضل مجتمع نشط وثقافة مفتوحة المصدر، يمكنك الاعتماد على Express في مشاريع الإنتاج وتطويرها حسب احتياجاتك.
ابدأ الآن: أنشئ مشروعًا جديدًا، ثبّت Express، وشاهد كيف يتحول فكرتك إلى خادم ويب يعمل في ثوانٍ! 🚀
التعليقات (0)
سجّل الدخول للتعليق.