Menu
CoddyTech

Routeur Express

Fait partie de la section Les bases d’Express du Journey Node.js de Coddy. Leçon 16 sur 20.

server.js contient maintenant les pages, les routes d’API et les intergiciels, et il continue de grossir.

// 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() crée une petite application avec ses propres routes, conservées dans leur propre fichier. app.use('/api/books', booksRouter) la monte : le / du routeur répond à GET /api/books, et son /:isbn répond à GET /api/books/9780141439518. Le préfixe est écrit une seule fois, dans app.use. Les erreurs déclenchées à l’intérieur d’un routeur parviennent toujours au gestionnaire d’erreurs de l’application.

Le nouveau fichier routes/recipes.js contient déjà une route, /tags.

challenge icon

Défi

Facile
  • Déplace les quatre routes /api/recipes de server.js vers routes/recipes.js, sous /tags.
  • Monte le routeur sur /api/recipes.

Envoie GET /api/recipes/tags, GET /api/recipes/2 et GET /api/recipes/2/scale?by=lots.

Essayez vous-même

import express from 'express';
import { recipes } from '../data.js';

const router = express.Router();

// Chaque étiquette, une seule fois, par ordre alphabétique.
router.get('/tags', (req, res) => {
    const tags = new Set(recipes.flatMap((recipe) => recipe.tags));
    res.json([...tags].sort());
});

// Déplacez les routes /api/recipes de server.js ici, sous /tags.
// Dans un routeur, les chemins sont relatifs à l’endroit où il est monté.

export default router;
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Les bases d’Express