Menu
CoddyTech

موجّه Express

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

يحتوي server.js الآن على الصفحات ومسارات API والبرمجيات الوسيطة، وما زال ينمو.

// routes/books.js
const router = express.Router();
router.get('/', (req, res) => res.json(books));
router.get('/:isbn', (req, res) => res.json(findBook(req.params.isbn)));
export default router;

// server.js
app.use('/api/books', booksRouter);

تنشئ express.Router() تطبيقًا صغيرًا له مساراته الخاصة، محفوظًا في ملف مستقل. أما app.use('/api/books', booksRouter) فيقوم بتركيبه: يستجيب / الخاص بالموجّه للطلب GET /api/books، ويستجيب /:isbn للطلب GET /api/books/9780141439518. يُكتب البادئة مرة واحدة، في app.use. وتصل الأخطاء التي تُطرح داخل الموجّه إلى معالج الأخطاء في التطبيق أيضًا.

يحتوي الملف الجديد routes/recipes.js بالفعل على مسار واحد، وهو /tags.

challenge icon

التحدي

سهل
  • انقل المسارات الأربعة /api/recipes من server.js إلى routes/recipes.js، أسفل /tags.
  • اربط الموجّه عند /api/recipes.

أرسل GET /api/recipes/tags وGET /api/recipes/2 وGET /api/recipes/2/scale?by=lots.

جرّب بنفسك

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

const router = express.Router();

// كل وسم مرة واحدة، بالترتيب الأبجدي.
router.get('/tags', (req, res) => {
    const tags = new Set(recipes.flatMap((recipe) => recipe.tags));
    res.json([...tags].sort());
});

// انقل مسارات /api/recipes من server.js إلى هنا، أسفل /tags.
// داخل الموجّه، تكون المسارات نسبية إلى الموضع الذي يُركَّب فيه.

export default router;
quiz iconاختبر نفسك

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

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