Menu
CoddyTech

Express Router

חלק מהיחידה יסודות 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.
// בתוך router, הנתיבים יחסיים למקום שבו הוא מותקן.

export default router;
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות Express