Tutoriel Express.js : construire un serveur Node pas à pas

Tutoriel Express.js

Tutoriel Express.js : routes, middleware, JSON, Express 5 | We.Inc

Construisez un serveur Express 5 pas à pas : routes, middleware, corps JSON, fichiers statiques et gestionnaire d'erreurs, avec un générateur de serveur de départ et les changements de la v4 à la v5.

Express est un petit framework web pour Node.js. Installez-le avec npm install express, créez une application avec express(), ajoutez des routes comme app.get('/', handler), et démarrez-la avec app.listen(3000). Les middlewares comme express.json() s'exécutent avant vos routes, et un gestionnaire d'erreurs à quatre arguments se place en dernier.

Les briques d'Express

La plupart des tutoriels Express montrent encore du code de la version 4 qui casse ou génère des avertissements en version 5, désormais installée par défaut. Ce guide utilise Express 5 de bout en bout, génère un serveur de départ avec les éléments que vous cochez, et se termine par un tableau des changements qui piègent les gens lors de la mise à jour d'un ancien projet.

Questions fréquentes

Quelle version de Node.js faut-il pour Express 5 ?

Express 5 nécessite Node.js 18 ou plus récent. Si vous êtes bloqué sur une version plus ancienne de Node, restez sur Express 4 jusqu'à ce que vous puissiez mettre à jour le runtime.

Pourquoi req.body vaut-il undefined ?

Aucun parseur de corps ne s'est exécuté pour cette requête. Ajoutez app.use(express.json()) pour le JSON ou express.urlencoded() pour les envois de formulaire avant vos routes, et assurez-vous que le client envoie un en-tête Content-Type correspondant. Dans Express 5, un corps non analysé vaut undefined et non un objet vide.

Comment écrire une route attrape-tout dans Express 5 ?

Les jokers doivent maintenant être nommés. Utilisez app.get('/*splat', handler) au lieu de '/*'. Pour inclure aussi le chemin racine, entourez-le d'accolades : '/{*splat}'.

Que fait next() ?

Il passe la requête au middleware ou à la route correspondante suivante. Appelez next() pour continuer, next(err) pour sauter vers les gestionnaires d'erreurs, ou envoyez une réponse pour arrêter la chaîne. Oublier les deux laisse la requête en suspens.

Faut-il encore utiliser body-parser ?

Pas pour le JSON et les données de formulaire. express.json() et express.urlencoded() sont intégrés. Notez que dans Express 5, l'option extended du parseur urlencoded vaut false par défaut.

Routes et paramètres

Le middleware en un paragraphe

Mettre en place un projet

Installer et lancer

Créez un dossier, initialisez package.json, déclarez-le comme projet ES module et installez Express.

Les routes dans leur propre fichier

Un router est une mini-application. Montez-le sous un préfixe pour que chaque chemin à l'intérieur soit relatif à celui-ci.

Les erreurs async atteignent le gestionnaire d'erreurs

Dans Express 5, une promesse rejetée dans une route est transmise pour vous. Le handler à quatre arguments, enregistré en dernier, la transforme en réponse.

D'Express 4 à 5 : ce qui a changé

Express fournit des codemods pour beaucoup de ces changements : npx codemod@latest @expressjs/v5-migration-recipe.

Code Express 4 et son remplacement en Express 5

Générateur de serveur de départ

Format de module

ES modules (import)

CommonJS (require)

Inclure

Analyse des corps JSON

Fichiers statiques depuis public/

Routes d'exemple avec un paramètre d'URL

Réponse 404 pour les chemins inconnus

Gestionnaire d'erreurs

Port

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site