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