express

Fast, unopinionated, minimalist web framework for node.

JavaScript ★ 69240 GitHub ↗

📦 نظرة عامة على المستودع 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 ActionsCI/CD لتشغيل الاختبارات على Linux تلقائيًا.
@ladjs/consolidateطبقة تجريدية موحدة لمحركات القوالب.
express-generatorأداة سطر أوامر لتوليد مشروع Express جاهز.

📥 كيفية التثبيت والاستخدام

1. المتطلبات الأولية

  1. Node.js (الإصدار 18 أو أعلى).
  2. 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 أو قالب؛ يمكنك دمج أي قاعدة بيانات أو محرك قوالب.
المجتمعات التعليميةوثائق واضحة، أمثلة كثيرة، ودعم مجتمع كبير.

🤝 المساهمة في المشروع

  1. القراءة: اطلع على ملف CONTRIBUTING.md داخل المستودع.
  2. قضايا الأمان: تُرفع عبر صفحة Security في GitHub وفقًا للسياسة المحددة.
  3. تشغيل الاختبارات
npm install   # تثبيت الاعتمادات التطويرية
npm test      # تشغيل جميع الاختبارات
  1. إرسال طلب سحب (Pull Request): اتبع إرشادات كتابة الكود، واكتب وصفًا واضحًا للتغييرات.

📄 خلاصة

  • Express هو إطار عمل ويب خفيف، سريع، وغير موجه، يُستخدم لتطوير خوادم HTTP وتطبيقات الويب على Node.js.
  • يوفر توجيهًا قويًا، دعمًا لمجموعة واسعة من محركات القوالب، ومجموعة غنية من الـ middleware.
  • التثبيت سهل عبر npm install express، ويمكن البدء بمثال بسيط في دقائق.
  • يناسب كل من المبتدئين والمحترفين، من التطبيقات الصغيرة إلى خدمات الـ API الكبيرة.
  • بفضل مجتمع نشط وثقافة مفتوحة المصدر، يمكنك الاعتماد على Express في مشاريع الإنتاج وتطويرها حسب احتياجاتك.

ابدأ الآن: أنشئ مشروعًا جديدًا، ثبّت Express، وشاهد كيف يتحول فكرتك إلى خادم ويب يعمل في ثوانٍ! 🚀

اسأل عن هذا المستودع

التعليقات (0)

سجّل الدخول للتعليق.