Router Express
Część sekcji Podstawy Express ścieżki Node.js w Coddy. Lekcja 16 z 20.
server.js zawiera teraz strony, trasy API i middleware, a jego zawartość stale rośnie.
// 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() tworzy małą aplikację z własnymi trasami, przechowywaną w osobnym pliku. app.use('/api/books', booksRouter) ją montuje: trasa routera / obsługuje GET /api/books, a trasa /:isbn obsługuje GET /api/books/9780141439518. Prefiks jest zapisany raz, w app.use. Błędy zgłoszone wewnątrz routera nadal trafiają do obsługi błędów aplikacji.
Nowy plik routes/recipes.js ma już jedną trasę: /tags.
Wyzwanie
Łatwy- Przenieś cztery trasy
/api/recipesz plikuserver.jsdo plikuroutes/recipes.js, poniżej/tags. - Zamontuj router pod adresem
/api/recipes.
Wyślij żądania GET /api/recipes/tags, GET /api/recipes/2 i GET /api/recipes/2/scale?by=lots.
Spróbuj swoich sił
import express from 'express';
import { recipes } from '../data.js';
const router = express.Router();
// Każdy tag tylko raz, w kolejności alfabetycznej.
router.get('/tags', (req, res) => {
const tags = new Set(recipes.flatMap((recipe) => recipe.tags));
res.json([...tags].sort());
});
// Przenieś trasy /api/recipes z server.js tutaj, poniżej /tags.
// W obrębie routera ścieżki są względne względem miejsca, w którym został zamontowany.
export default router;
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.