لماذا نستخدم Express.js؟ التثبيت وإعداد أول خادم متطور
ماذا سنتعلم اليوم؟ سنستكشف لماذا Express.js هو الخيار الأمثل لبناء تطبيقات الويب، وسنبدأ رحلتنا بتثبيته وإعداد أول خادم Node.js متطور.
لماذا Express.js؟
Express.js هو إطار عمل (framework) خفيف ومرن لتطبيقات الويب لـ Node.js، يوفر مجموعة قوية من الميزات لإنشاء تطبيقات ويب وواجهات برمجة التطبيقات (APIs) بسهولة وسرعة. إنه يسهل التعامل مع التوجيه (routing)، ومعالجة الطلبات والاستجابات (request/response handling)، وإدارة الوسيطات (middleware)، مما يجعله حجر الزاوية في معظم مشاريع Node.js.
المتطلبات الأساسية
- Node.js و npm (مدير حزم Node) مثبتان على جهازك.
التثبيت وإعداد المشروع
لنبدأ بإنشاء مجلد جديد لمشروعنا وتهيئته، ثم نقوم بتثبيت Express.js.
-
إنشاء مجلد المشروع وتهيئته
افتح سطر الأوامر (Terminal/CMD) وانتقل إلى المجلد الذي تريد إنشاء مشروعك فيه:
mkdir my-express-app cd my-express-app npm init -ynpm init -yيقوم بإنشاء ملفpackage.jsonتلقائياً بقيم افتراضية، وهو ضروري لإدارة تبعيات المشروع. -
تثبيت Express.js
الآن، سنقوم بتثبيت Express.js كاعتماد لمشروعنا:
npm install expressسيضيف هذا الأمر
expressإلى قائمة التبعيات في ملفpackage.jsonالخاص بك ويقوم بتنزيل الملفات اللازمة إلى مجلدnode_modules.
بناء أول خادم Express.js
سنقوم بإنشاء ملف جديد باسم app.js (أو server.js) في مجلد مشروعك، ثم نضيف إليه الكود خطوة بخطوة.
-
الخطوة 1: استيراد Express وإنشاء التطبيق
في ملف
app.js، سنستورد مكتبة Express وننشئ مثيلاً لتطبيق Express.// استيراد مكتبة Express.js const express = require('express'); // إنشاء مثيل لتطبيق Express const app = express();require('express')يجلب إطار العمل، وapp = express()ينشئ كائناً يمثل تطبيق الويب الخاص بنا. -
الخطوة 2: تحديد المنفذ ومسار الجذر (Root Route)
سنحدد المنفذ الذي سيعمل عليه الخادم وننشئ أول مسار (route) يستقبل الطلبات على الجذر (
/).// تحديد رقم المنفذ الذي سيستمع عليه الخادم const PORT = 3000; // تعريف مسار الجذر (root route) الذي يستقبل طلبات GET app.get('/', (req, res) => { // إرسال استجابة نصية إلى العميل res.send('مرحباً بك في خادم Express.js الأول!'); });app.get('/', ...)هو معالج مسار يستجيب لطلباتGETعلى المسار/. الدالة(req, res) => { ... }هي دالة رد النداء التي تنفذ عند تلقي الطلب، حيثreqيمثل كائن الطلب وresيمثل كائن الاستجابة. -
الخطوة 3: تشغيل الخادم
الآن، لنجعل الخادم يبدأ بالاستماع للطلبات على المنفذ المحدد.
// جعل الخادم يستمع للطلبات على المنفذ المحدد app.listen(PORT, () => { // طباعة رسالة في الكونسول عند بدء تشغيل الخادم بنجاح console.log(<code dir="ltr" style="background:#f3f4f6; color:#0056b3; padding:2px 6px; border-radius:4px; font-family:monospace; direction:ltr !important; display:inline-block;">الخادم يعمل بنجاح على http://localhost:${PORT}</code>); });الدالة
app.listen()تبدأ الخادم وتجعله يستمع للاتصالات الواردة على المنفذ. الدالة العائدة (callback function) تنفذ بعد أن يبدأ الخادم بالاستماع بنجاح.
الكود النهائي الكامل
هذا هو الكود الكامل لملف app.js:
// استيراد مكتبة Express.js
const express = require('express');
// إنشاء مثيل لتطبيق Express
const app = express();
// تحديد رقم المنفذ الذي سيستمع عليه الخادم
const PORT = 3000;
// تعريف مسار الجذر (root route) الذي يستقبل طلبات GET
app.get('/', (req, res) => {
// إرسال استجابة نصية إلى العميل
res.send('مرحباً بك في خادم Express.js الأول!');
});
// جعل الخادم يستمع للطلبات على المنفذ المحدد
app.listen(PORT, () => {
// طباعة رسالة في الكونسول عند بدء تشغيل الخادم بنجاح
console.log(<code dir="ltr" style="background:#f3f4f6; color:#0056b3; padding:2px 6px; border-radius:4px; font-family:monospace; direction:ltr !important; display:inline-block;">الخادم يعمل بنجاح على http://localhost:${PORT}</code>);
});
تشغيل الخادم
لحفظ الملف app.js في مجلد my-express-app، ثم قم بتشغيله باستخدام Node.js من سطر الأوامر:
node app.js
النتيجة المتوقعة
عند تشغيل الخادم، ستشاهد الرسالة التالية في سطر الأوامر:
الخادم يعمل بنجاح على http://localhost:3000
الآن، افتح متصفح الويب الخاص بك وانتقل إلى العنوان http://localhost:3000. ستشاهد النص التالي في المتصفح:
مرحباً بك في خادم Express.js الأول!
تهانينا! لقد قمت بتثبيت وإعداد وتشغيل أول خادم Express.js بنجاح.