موجّه 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.
التحدي
سهل- انقل المسارات الأربعة
/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;
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.