Par TJ Holowaychuk · 2010 · Sources officielles vérifiées
En résumé
Framework web minimaliste et flexible pour Node.js, pilier historique de l'écosystème JavaScript backend pour la création d'APIs REST et d'applications serveur.
Express.js est le framework backend le plus populaire et le plus téléchargé de l'écosystème Node.js (des dizaines de millions de téléchargements par semaine sur npm). Faisant partie intégrante de la stack historique MERN (MongoDB, Express, React, Node), Express repose sur un système de chaîne de middlewares où chaque fonction reçoit les objets `req` (requête), `res` (réponse) et la fonction `next()`. Sa philosophie volontairement non-opinionée laisse une liberté totale au développeur sur le choix des bases de données, ORMs et validateurs.
Le cœur d'Express est une simple pile ordonnée de fonctions interceptant la requête HTTP séquentiellement.
Chaque middleware peut inspecter la requête, modifier les en-têtes, valider une session ou un token JWT, puis appeler `next()` pour passer la main au middleware suivant.
Permet de découper les endpoints par domaine métier (ex: `/api/auth`, `/api/products`) et de les monter sur des chemins spécifiques.
Middleware spécial à quatre arguments `(err, req, res, next)` interceptant automatiquement toutes les erreurs déclenchées en amont.
API Express standard avec middleware d’authentification et route JSON
const express = require('express');
const app = express();
app.use(express.json());
// Middleware d'authentification simple
const authMiddleware = (req, res, next) => {
const token = req.headers.authorization;
if (!token) return res.status(401).json({ error: 'Token manquant' });
next();
};
app.get('/api/me', authMiddleware, (req, res) => {
res.json({ user: 'Dev Coderoe', role: 'admin' });
});
app.listen(3000, () => {
console.log('Serveur Express actif sur http://localhost:3000');
});Express est le standard historique le plus populaire, tandis que Fastify est la relève ultra-rapide et typée.
| Critère | Express.js | Fastify |
|---|---|---|
| Maturité & Écosystème | Plus ancien (2010), des dizaines de milliers de tutoriels et packages dédiés. | Plus moderne (2016), écosystème grandissant mais plus récent. |
| Vitesse d’exécution | Performance correcte mais dépassée par les benchmarks modernes. | Optimisations internes poussées pour diviser par deux la latence. |
Données techniques vérifiées auprès des documentations officielles, des RFCs et des spécifications standards.