Menu
CoddyTech

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.

challenge icon

Wyzwanie

Łatwy
  • Przenieś cztery trasy /api/recipes z pliku server.js do pliku routes/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;
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy Express