Middleware
NestJS 🟡 MidDéfinition
Fonction ou classe exécutée avant le route handler, avec accès a request, response et next(). Compatible avec les middlewares Express/Fastify.
Analogie
Comme un agent de sécurité a l'entrée d'un immeuble : il vérifie ton badge avant de te laisser monter.
Exemple de code
@Injectable()
export class LoggerMiddleware implements NestMiddleware {
use(req: Request, res: Response, next: NextFunction) {
console.log(`${req.method} ${req.url}`);
next();
}
}
Cas d'usage
Logger les requêtes, parser des headers custom ou modifier la requête avant qu'elle atteigne le controller.
Anti-pattern
Termes liés
En entretien
Quelle différence entre un Middleware et un Guard dans NestJS ?
Le middleware s'exécute avant le route handler avec accès à request, response et next(), un peu comme un agent de sécurité à l'entrée d'un immeuble qui vérifie ton badge avant de te laisser monter, et il est compatible avec les middlewares Express/Fastify. Le guard, lui, décide explicitement si la requête continue via CanActivate, ce qui n'est pas le rôle du middleware.
Pourquoi éviter de mettre de la logique métier spécifique à une route dans un middleware ?
Parce que c'est l'anti-pattern identifié : le middleware est fait pour du générique comme logger les requêtes ou parser des headers, pas pour de la logique propre à une route précise. Pour ça, un interceptor ou un guard est plus adapté.
Fiche mise à jour le 2026-09-27