وحدة http
جزء من قسم أساسيات Express في رحلة Node.js على Coddy. الدرس 2 من 23.
ينجز Express أعمالًا نيابةً عنك لا يمكنك رؤيتها. ويُظهر ذلك وحدة node:http الخاصة بـ Node، التي بُني Express عليها.
import http from 'node:http';
const server = http.createServer((req, res) => {
if (req.url === '/repairs') {
res.statusCode = 503;
res.end('Repairs are closed today');
return;
}
res.end('Welcome to the bike shop');
});
server.listen(3000);يستدعي Node الدالة لكل طلب. لا توجد مسارات: عليك بنفسك مقارنة req.url، أي المسار المطلوب. res.statusCode هو رمز الحالة، وهو رقم يوضح نتيجة الطلب: 200 تعني أن كل شيء على ما يرام، و404 تعني أن العنصر غير موجود. ترسل res.end محتوى الاستجابة وتنهيها، لذا عيّن الحالة قبل استدعائها.
التحدي
سهلقبل متابعة العمل مع Express، اكتب خادمًا صغيرًا باستخدام وحدة node:http الخاصة بـ Node، لترى العمل الذي ينجزه Express نيابةً عنك.
- في
server.js، داخل الدالة المُمرَّرة إلىhttp.createServer، افحصreq.url. عندما تكون قيمته/، أرسل النصHome. - لكل مسار آخر، عيّن رمز الحالة إلى 404 وأرسل النص
Not found. عيّن الحالة قبل الإرسال. بعد انتهاء الاستجابة، لا يمكن تغيير حالتها.
جرّب ذلك: اضغط على «العب» وأرسل /. ينبغي أن ترى Home مع الحالة 200. أرسل /nope، ثم /recipes/today. ينبغي أن يظهر في الحالتين Not found مع الحالة 404. في الدرس 1، أرسل Express خطأ 404 نيابةً عنك؛ وهنا تكتبه بنفسك.
جرّب بنفسك
import http from 'node:http';
const server = http.createServer((req, res) => {
// استجب للمسار / بـ Home، ولكل مسار آخر بـ 404 Not found.
res.end('Hello from Node');
});
server.listen(3000, () => {
console.log('Listening on port 3000');
});
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس أساسيات Express
تدرّب بنفسك: Playground لـ Express