0 XP
?
Intermédiaire45 min30 XP

Objectifs de cette leçon

  • Installer et configurer Express
  • Créer des routes GET et POST
  • Utiliser les middlewares

Express.js : le framework web 🛤️

Introduction

Express.js est le framework web le plus populaire pour Node.js. Il simplifie la création de serveurs, le routing, et le middleware.

npm init -y
npm install express

Premier serveur Express

import express from 'express';

const app = express();
const PORT = 3000;

app.get('/', (req, res) => {
  res.send('Bienvenue sur mon serveur Express !');
});

app.listen(PORT, () => {
  console.log(`Serveur démarré sur http://localhost:${PORT}`);
});

Routing (routes)

// GET : lire des données
app.get('/api/users', (req, res) => {
  res.json([{ id: 1, nom: 'Alice' }]);
});

// POST : créer une ressource
app.post('/api/users', (req, res) => {
  res.status(201).json({ id: 2, nom: 'Nouvel utilisateur' });
});

// PUT : modifier une ressource
app.put('/api/users/:id', (req, res) => {
  res.json({ id: req.params.id, message: 'Mis à jour' });
});

// DELETE : supprimer une ressource
app.delete('/api/users/:id', (req, res) => {
  res.json({ message: 'Supprimé' });
});

Paramètres de route

// Paramètre d'URL
app.get('/users/:id', (req, res) => {
  console.log(req.params.id);  // "42" pour /users/42
  res.json({ id: req.params.id });
});

// Paramètres de requête (query string)
app.get('/search', (req, res) => {
  console.log(req.query.q);    // "hello" pour /search?q=hello
  res.json({ terme: req.query.q });
});

Middleware

Les middleware sont des fonctions intermédiaires exécutées avant la réponse finale.

import express from 'express';

const app = express();

// Middleware intégré : parser le JSON
app.use(express.json());

// Middleware personnalisé : logger
app.use((req, res, next) => {
  console.log(`${req.method} ${req.url} - ${new Date().toISOString()}`);
  next(); // Passer au middleware suivant
});

// Route
app.get('/', (req, res) => {
  res.json({ message: 'OK' });
});

app.listen(3000);

Middleware d'erreur

// Route avec erreur
app.get('/erreur', (req, res, next) => {
  next(new Error('Quelque chose a planté !'));
});

// Middleware d'erreur (4 paramètres !)
app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).json({ error: 'Erreur serveur' });
});

💡 Un middleware d'erreur se reconnaît à ses 4 paramètres : (err, req, res, next).


Fichiers statiques

// Servir le dossier 'public' pour les fichiers statiques
app.use(express.static('public'));
// => public/index.html est accessible sur /index.html

Résumé

FonctionDescription
express()Crée l'application
app.get()Route GET
app.post()Route POST
app.use()Ajoute un middleware
app.listen()Démarre le serveur
req.paramsParamètres d'URL
req.queryParamètres de requête
req.bodyCorps de la requête (avec JSON parser)
res.json()Réponse JSON
res.status()Définir le code de statut

Exercices 🎯

  1. Crée une API avec des routes GET/POST/PUT/DELETE pour une liste de tâches
  2. Ajoute un middleware de logging qui affiche la méthode, l'URL, et le temps de réponse
  3. Ajoute un middleware d'authentification simple qui vérifie un header Authorization

⚡ Simulateur — Express.js

Étape 1/4
📝 Pseudo-code
1const express = require("express");
2const app = express();
3app.get("/", (req, res) => res.json({ msg: "OK" }));
4app.listen(3000);
⚙️ Exécution
📦 Mémoire
Aucune variable
🔀 Flux d'exécution
require("express")
3
Import d'Express

require("express") importe le framework Express, le web framework le plus populaire pour Node.js.