Menu
CoddyTech

معاملات المسار

جزء من قسم أساسيات Express في رحلة Node.js على Coddy. الدرس 4 من 20.

سيحتوي صندوق الوصفات على وصفات كثيرة، ولن تنتهي إضافة مسار لكل وصفة أبدًا.

app.get('/weather/:city', (req, res) => {
    res.send('Forecast for ' + req.params.city);
});

جزء المسار الذي يبدأ بنقطتين رأسيتين هو مُعامل مسار: يطابق أي قيمة، ويضع Express هذه القيمة في req.params. يرسل GET /weather/oslo القيمة Forecast for oslo.

المُعامل دائمًا سلسلة نصية. يُرجع GET /rooms/12 القيمة '12'، وتكون '12' === 12 خاطئة، لذا حوّلها باستخدام Number(...) قبل مقارنتها بالأرقام.

عندما لا يكون الشيء المطلوب موجودًا، أجب برمز الحالة 404: يضبط res.status(404).send('No such city') الحالة، ثم يرسل الاستجابة.

challenge icon

التحدي

سهل
  • يُرجع GET /recipes/:id عنوان الوصفة ذات ذلك المعرّف.
  • يُرجع المعرّف غير المعروف 404 مع No such recipe.

أرسل GET /recipes/2، ثم GET /recipes/99.

جرّب بنفسك

import express from 'express';
import { recipes } from './data.js';

const app = express();

app.get('/', (req, res) => {
    res.send('Welcome to Recipe Box');
});

// ترسل type('text') نصًا عاديًا، لذا يظهر كل عنوان في سطر مستقل.
app.get('/recipes', (req, res) => {
    res.type('text').send(recipes.map((recipe) => recipe.title).join('\n'));
});

app.get('/about', (req, res) => {
    res.send('Recipe Box collects family recipes.');
});

app.listen(3000, () => {
    console.log('Recipe Box is running on port 3000');
});
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس أساسيات Express