Introduction
Dans le dernier article, nous avons vu comment lire une requête dans un projet Node.js. Aujourd'hui, je vais vous présenter une méthode plus efficace et plus simple pour développer n'importe quelle application sur Node.js. C'est Express !
Dans cet article, je vais vous expliquer ce qu'est Express.js, quand l'utiliser et comment l'utiliser.
Qu'est-ce qu'Express.js ?
Express.js, souvent appelé simplement Express, est un framework backend minimaliste et flexible pour Node.js. Il fournit un ensemble robuste de fonctionnalités pour développer des applications web et mobiles.
L'une des caractéristiques clés d'Express est son utilisation des middlewares. Un middleware est une fonction qui a accès aux objets de requête (req
) et de réponse (res
), ainsi qu'à la fonction suivante dans le cycle de requête-réponse de l'application. Il gère le cheminement d'une requête HTTP (GET
, POST
, PUT
, DELETE
, etc.) envoyée par un client (navigateur, application mobile, etc.) jusqu'à la réponse envoyée par le serveur.
En d'autres termes, un middleware est une fonction qui reçoit les requêtes, les traite et envoie la réponse à l'utilisateur. Il agit comme un intermédiaire entre le serveur et le client. Lorsqu'une requête HTTP arrive, elle peut être traitée par plusieurs middlewares, chacun effectuant une tâche spécifique.
Par exemple :
-
Un middleware peut vérifier si la requête contient un jeton d'authentification valide pour sécuriser l'application.
-
Un autre middleware peut transformer le corps de la requête en JSON si nécessaire.
Express offre également des gestionnaires de routes qui permettent de définir des traitements spécifiques pour différentes routes. Par exemple, on peut spécifier que pour la route /books
, une certaine fonction sera exécutée, tandis que pour la route /home
, une autre fonction sera exécutée. Cela permet de structurer l'application de manière claire et efficace.
De plus, Express facilite l'intégration avec les bases de données via divers modules complémentaires, simplifiant ainsi l'accès et la manipulation des données.
Quand l'utiliser ?
Il est recommandé d'utiliser Express.js pour la plupart des applications Node.js en raison de sa simplicité et de son efficacité. Il est particulièrement utile lorsque des middlewares sont nécessaires pour effectuer des opérations courantes sur l'ensemble des requêtes, comme :
-
La gestion de l'authentification
-
La journalisation
-
Le traitement des données
Installation
Pour installer Express.js, exécutez la commande suivante dans le terminal, à l'intérieur de votre projet :
npm install --save express
Cette commande télécharge Express et l'ajoute aux dépendances de votre projet. Ces dépendances sont enregistrées dans le fichier package.json
, et npm
les installe dans un dossier nommé node_modules
. Les dépendances sont enregistrées dans le fichier package.json
à l'aide de --save
, et npm
les installe dans un dossier nommé node_modules
via Internet. Vous remarquerez que node_modules
contient plusieurs dépendances téléchargées automatiquement avec Express.
Comment l'utiliser ?
Nous allons utiliser notre application habituelle et supprimer tout ce qui a été fait dans le fichier app.js
.
Voici les étapes pour utiliser Express :
-
Importer le module Express
const express = require('express');
-
Instancier le framework Express
const app = express();
-
Créer un serveur
app.listen(3000, () => { console.log("Serveur Node.js démarré sur le port 3000"); });
-
Créer des middlewares
-
Créons un premier middleware pour la route
"/"
. Comme dans le dernier article, nous utiliseronssetHeader()
pour définir le type de contenu HTML.app.get("/", (req, resp) => { resp.setHeader("content-type", "text/html"); resp.send("<h3>Hello World!<h3>"); });
Résultat attendu :
Lorsqu'un utilisateur accède à
http://localhost:3000/
, il verra "Hello World!" affiché en HTML.-
Créons maintenant un second middleware pour gérer la route
"/books/:id"
. Nous allons lire le paramètreid
dans la requête et afficher un livre sous forme de JSON.app.get("/books/:id", (req, resp) => { resp.setHeader("content-type", "application/json"); resp.status(200).json({id: req.params.id, auteur: 'Mike Taylor', nom:'La comédie des erreurs', prix:'5$'}) });
Résultat attendu :
En accédant à
http://localhost:3000/books/1
, vous obtiendrez la réponse suivante en imageLe paramètre
id
changera selon l'identifiant spécifié dans la requête. -
Correction finale
Voici le code final de app.js
:
const express = require('express');
const app = express();
app.get("/", (req, resp) => {
resp.setHeader("content-type", "text/html");
resp.send("<h3>Hello World!<h3>");
});
app.get("/books/:id", (req, resp) => {
resp.setHeader("content-type", "application/json");
resp.status(200).json({id: req.params.id, auteur: 'Mike Taylor', nom:'La comédie des erreurs', prix:'5$'})
});
app.listen(3000, () => {
console.log("Serveur Node.js démarré");
});
Conclusion
Félicitations ! Vous avez appris à utiliser Express.js pour créer un serveur Node.js simple et efficace.
Quelques points à retenir :
-
Toutes ces opérations sont asynchrones, ce qui signifie que si une opération prend du temps, l'application ne reste pas bloquée et passe à autre chose.
-
Vous pouvez aussi utiliser
app.post()
,app.put()
etapp.delete()
pour gérer d'autres types de requêtes HTTP.
Nous arrivons à la fin de cet article sur Node.js. Si vous avez des questions, n'hésitez pas à les poser dans les commentaires. Bonne chance et bon codage !
Références
-
Tutoriel: « Travailler avec des routes dans ExpressJS : transmettre des paramètres dans les routes : Cours Comment créer des API dans NodeJS de base à avancée » sur https://cursa.app/, https://cursa.app/fr/page/travailler-avec-des-routes-dans-expressjs-transmettre-des-parametres-dans-les-routes (page consulté le 22 Mars 2025)
-
Tutoriel: « Send a response using Express» sur https://flaviocopes.com/, https://flaviocopes.com/express-send-response/ (page consulté le 22 Mars 2025)
-
Documentation officiel de expressjs : https://expressjs.com/fr/starter/installing.html (page consulté le 22 Mars 2025)
-
« What does npm install --save express@4.10.2 mean and how do I use it? » sur https://stackoverflow.com, https://stackoverflow.com/questions/41537089/what-does-npm-install-save-express4-10-2-mean-and-how-do-i-use-it (page consulté le 22 Mars 2025)
-
Documentation officiel de expressjs, https://expressjs.com/fr/guide/database-integration.html (page consulté le 22 Mars 2025)
-
Documentation : « Introduction à Express » sur https://developer.mozilla.org, https://developer.mozilla.org/fr/docs/Learn_web_development/Extensions/Server-side/Express_Nodejs/Introduction (page consulté le 22 Mars 2025)
-
Tutoriel : « Express JS › Comprendre les Middlewares » sur https://laconsole.dev, https://laconsole.dev/formations/express/middlewares (page consulté le 22 Mars 2025)
-
« Vos premiers pas avec Express.js » sur https://dev.to, https://dev.to/ericlecodeur/votre-premiers-pas-avec-express-js-2ba4 (page consulté le 22 Mars 2025)
-
« Les Middlewares en Express.js : Tout ce que tu Dois Savoir pour les Maîtriser » sur LinkedIn, https://www.linkedin.com/pulse/les-middlewares-en-expressjs-tout-ce-que-tu-dois-savoir-voglossou-qgnle/ (page consulté le 22 Mars 2025)
-
Tutoriel : « Pourquoi choisir Express.js pour développer des applications web ? » sur https://logical-conseils.com, https://logical-conseils.com/actualites/express-js-le-framework-node-js/ (page consulté le 22 Mars 2025)
Commentaires