In Express.js ، routing هو مفهوم مهم يسمح لك بتحديد كيفية معالجة تطبيقك لطلبات HTTP الواردة من المستخدمين. تمكّنك المسارات من تحديد إجراءات معينة عندما يرسل المستخدمون طلبات إلى عناوين URL محددة في تطبيقك.
الخطوة الأولى: إنشاء ملف أساسي Route
لإنشاء route in Express.js ، يمكنك استخدام app.METHOD(PATH, HANDLER)
طريقة كائن التطبيق( app
) لتسجيل route طريقة HTTP محددة METHOD ومسار PATH. HANDLER هي وظيفة معالج سيتم استدعاؤها عندما يصل الطلب إلى ذلك route.
على سبيل المثال ، لإنشاء طلب route يعالج GET
طلبًا لـ /hello
، يمكنك استخدام الكود التالي:
app.get('/hello',(req, res) => {
res.send('Hello, this is the /hello route!');
});
الخطوة الثانية: التعامل مع الطلبات والردود
في وظيفة المعالج ، يمكنك معالجة الطلبات الواردة من المستخدمين والرد عليها باستخدام كائني req
(الطلب) و res
(الاستجابة). يحتوي الكائن req
على معلومات حول الطلب الوارد ، مثل معلمات URL ، والبيانات المرسلة ، وعنوان IP الخاص بالمرسل ، وما إلى ذلك. res
يحتوي الكائن على طرق للرد على الطلب ، مثل res.send()
، res.json()
، res.render()
وما إلى ذلك.
الخطوة 3: التعامل مع طرق متعددة
Express.js يسمح لك بتحديد مسارات متعددة لنفس عنوان URL باستخدام طرق HTTP مختلفة. على سبيل المثال:
app.get('/hello',(req, res) => {
res.send('Hello, this is the GET /hello route!');
});
app.post('/hello',(req, res) => {
res.send('Hello, this is the POST /hello route!');
});
الخطوة 4: التعامل مع المعلمات الديناميكية
يمكنك أيضًا تحديد المسارات التي تحتوي على معلمات ديناميكية ، محددة بنقطتين( :
). على سبيل المثال:
app.get('/users/:id',(req, res) => {
const userId = req.params.id;
res.send(`Hello, this is the GET /users/${userId} route!`);
});
عندما يقوم المستخدم بتقديم طلب إلى /users/123
، فإن userId
المتغير سيكون له القيمة "123".
الخطوة 5: افصل Routing مع الوحدات
في المشاريع الكبيرة ، قد ترغب في فصل المسارات إلى ملفات منفصلة للحفاظ على كود المصدر الخاص بك منظمًا ويمكن إدارته. يمكنك استخدامه module.exports
لتعريف المسارات في ملفات منفصلة ثم استيرادها إلى الملف الرئيسي. على سبيل المثال:
// routes/users.js
const express = require('express');
const router = express.Router();
router.get('/profile',(req, res) => {
res.send('This is the /profile route in users.js!');
});
module.exports = router;
// app.js
const usersRouter = require('./routes/users');
app.use('/users', usersRouter);
الخطوة 6: التعامل مع الطرق غير الموجودة
أخيرًا ، إذا طلب مستخدم ما غير موجود route ، يمكنك تحديد 404 route للتعامل معه. يتم ذلك عن طريق تعيين افتراضي route في نهاية ملفك الرئيسي:
app.use((req, res, next) => {
res.status(404).send('Route not found!');
});
لقد تعلمنا كيفية إنشاء الطرق والتعامل معها Express.js. باستخدام هذه الميزة ، يمكنك تخصيص طلبات المستخدم والتعامل معها بمرونة وقوة ، مما يجعل تطبيقك أكثر قابلية للتكيف وقابلية للتوسع. استمر في استكشاف الطرق واستخدامها في بناء تطبيقات ويب غنية ورائعة!