شرح مفصل لـ Node.js Server
Node.js هو بيئة تشغيل مفتوحة المصدر تسمح للمطورين بإنشاء تطبيقات خادم فعالة وسريعة باستخدام لغة JavaScript. تتميز Node.js بقدرتها على التعامل مع عدد كبير من الاتصالات المتزامنة بفضل طبيعتها غير المتزامنة والمعتمدة على الأحداث. في هذا المقال، سنقوم بشرح كيفية إنشاء خادم باستخدام Node.js، مع تقديم أمثلة متعددة توضح كيفية تنفيذ ذلك.
إنشاء خادم بسيط باستخدام Node.js
لإنشاء خادم بسيط باستخدام Node.js، نبدأ بإنشاء ملف JavaScript جديد ثم نقوم بتحميل وحدة http المدمجة في Node.js. هذه الوحدة توفر الأدوات اللازمة لإنشاء خادم HTTP. في المثال التالي، سنقوم بإنشاء خادم يستمع على المنفذ 3000 ويعرض رسالة ترحيبية بسيطة عند تلقي طلب من المتصفح:
// تحميل وحدة http
const http = require('http');
// إنشاء خادم
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('مرحبًا بكم في خادم Node.js!');
});
// الاستماع على المنفذ 3000
server.listen(3000, () => {
console.log('الخادم يعمل على http://localhost:3000/');
});
في هذا المثال، قمنا بإنشاء خادم يستخدم دالة createServer التي تأخذ دالة رد النداء لتتعامل مع الطلبات الواردة. نقوم بإعداد رمز الحالة وإعداد نوع المحتوى، وأخيرًا نرسل ردًا بسيطًا إلى العميل.
إضافة مسارات متعددة إلى الخادم
لإنشاء تطبيق ويب أكثر تعقيدًا، قد تحتاج إلى التعامل مع مسارات متعددة. يمكن تحقيق ذلك بإضافة بعض المنطق الإضافي داخل دالة رد النداء الخاصة بالخادم. في المثال التالي، سنقوم بتوجيه الطلبات إلى مسارات مختلفة بناءً على عنوان URL المطلوب:
// تحميل [شركة برمجة مصرية] وحدة http
const http = require('http');
// إنشاء خادم
const server = http.createServer((req, res) => {
if (req.url === '/') {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('مرحبًا بكم في الصفحة الرئيسية!');
} else if (req.url === '/about') {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('هذه صفحة معلومات عن الموقع.');
} else {
res.statusCode = 404;
res.setHeader('Content-Type', 'text/plain');
res.end('الصفحة [شركة برمجة مصرية] غير موجودة.');
}
});
// الاستماع على المنفذ 3000
server.listen(3000, () => {
console.log('الخادم يعمل على http://localhost:3000/');
});
في هذا المثال، نقوم بفحص عنوان URL المطلوب لتحديد المسار الذي يجب التعامل معه. إذا كان الطلب موجها إلى المسار الجذري، نقوم بإرسال رد للصفحة الرئيسية. وإذا كان المسار “/about”، نرسل ردًا يوضح معلومات عن الموقع. أما إذا كان المسار غير معروف، فإننا نرسل ردًا بحالة 404 يشير إلى أن الصفحة غير موجودة.
