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.
אתגר
קל- העבירו את ארבעת הנתיבים של
/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;
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.