Middleware (Intergiciel) Express
Lorsque la requête arrive, elle passe à travers chaque intergiciel.
L’intergiciel appelle le prochain avec next()  
graph TD
  A[Client] -- req --> B[Intergiciel 1];
  B[Intergiciel 1] -- res --> A[Client];
  B[Intergiciel 1] -- req --> C[Intergiciel 2];
  C[Intergiciel 2] -- res --> B[Intergiciel 1];
  C[Intergiciel 2] -- req --> D["app.get()"];
  D["app.get()"] -- res --> C[Intergiciel 2];
index.ts
import express from "express";
const app = express();
const port = 3000;
function historique(
  req: express.Request,
  res: express.Response,
  next: express.NextFunction
) {
  console.log(`${req.method} ${req.url}`);
  next();
}
const historiqueParametre = (
  req: express.Request,
  res: express.Response,
  next: express.NextFunction
) => {
  const nom = req.query.nom;
  console.log(nom);
  if (nom === "Etienne") {
    next();
  } else {
    res.status(404).send("Erreur");
  }
};
app.use(historique);
app.use(historiqueParametre);
app.get("/", (req: express.Request, res: express.Response) => {
  res.send("Hello World");
});
app.listen(port, () => console.log("serveur démaré"));
S'il y a un besoin de contrôler et même refuser l'exécution de routes, l'intergiciel peut courtcircuiter la chaîne comme suit :
mini-securite.ts
const bloquerSiPasEtienne = (
  req: express.Request,
  res: express.Response,
  next: express.NextFunction,
) => {
  const nom = req.query.nom;
  console.log(nom);
  if (nom === 'Etienne') {
    next();
  } else {
    res.status(403).send('Erreur');
  }
};
app.use(bloquerSiPasEtienne);
Intergiciel - morgan
Morgan est un intergiciel pour garder l’historique des requêtes traitées par votre serveur Express.
Pour l’installation :
Pour l’utilisation :
Manuel
Intergiciel – express.json()
Intergiciel pour transformer le json reçu du client en objet, remplace req.body.
Utilisation :
utilisateurs.ts
app.use(express.json());
app.post('/', (req: express.Request<Utilisateur>, res: express.Response) => {
    const nouvelUtilisateur: Utilisateur = {
        id: req.body.id,
        utilisateur: req.body.utilisateur,
        nom: req.body.nom,
        age: req.body.age,
    };
    listeUtilisateurs.push(nouvelUtilisateur);
    res.send(nouvelUtilisateur);
    console.log(nouvelUtilisateur);
});
Manuel