oujood.com

ExpressJS - Routing et gestion des routes HTTP dans votre application ExpressJS

Apprenez à gérer vos routes HTTP avec ExpressJS grâce à notre ExpressJS routing tutorial. Découvrez comment utiliser Express router pour organiser vos routes HTTP et améliorer la maintenabilité de votre application. Tutoriel pour débutants et développeurs avancés.

chercher |

Qu'est-ce que le routage avec ExpressJS ? Comprendre l'importance du routage HTTP dans ExpressJS

Dans ce ExpressJS routing tutorial, nous allons vous expliquer comment configurer et utiliser les routes HTTP avec ExpressJS. Ce guide détaillé est parfait pour les développeurs débutants et avancés, souhaitant maîtriser la gestion des routes dans leurs applications ExpressJS. Nous verrons comment utiliser Express router, une fonctionnalité essentielle pour organiser et maintenir votre code de manière efficace.

Qu'est-ce qu'une route dans ExpressJS ?

Dans le contexte d'ExpressJS, une route représente une URL spécifique qui détermine quel code doit être exécuté lorsqu'une requête HTTP est envoyée à cette URL. En d'autres termes, une route est un chemin défini dans votre application qui gère les requêtes reçues. Chaque route est associée à un ou plusieurs méthodes HTTP (comme GET, POST, PUT, DELETE) et à un gestionnaire de requêtes qui exécute le code lorsque cette route est sollicitée. Cela permet à Express de répondre correctement aux différentes actions que les utilisateurs souhaitent effectuer sur votre site web, comme afficher une page, envoyer des données, ou supprimer des informations.

Configurer des routes HTTP avec ExpressJS : Un guide étape par étape

Le routage dans ExpressJS est crucial pour la gestion des requêtes HTTP. Voici comment définir des routes HTTP dans ExpressJS :

📋 Copier le code

var express = require('express');
var app = express();

app.get('/hello', function(req, res) {
    res.send('Hello, welcome to ExpressJS routing!');
});

app.listen(3000);
        

Dans cet exemple, nous avons créé une route GET qui envoie un message de bienvenue à l'utilisateur. Le serveur écoute sur le port 3000, et lorsque vous accédez à http://localhost:3000/hello, vous recevrez la réponse "Hello, welcome to ExpressJS routing!".

Exemple de routage avec ExpressJS : Création de routes GET et POST

Dans cet exemple, nous allons voir comment gérer les requêtes GET et POST sur la même route avec ExpressJS. Cela est particulièrement utile pour les applications qui ont besoin de gérer différents types de requêtes sur une même ressource.

📋 Copier le code

var express = require('express');
var app = express();

// Route GET pour afficher un message
app.get('/hello', function(req, res) {
    res.send('Hello, welcome to ExpressJS routing!');
});

// Route POST pour recevoir un message
app.post('/hello', function(req, res) {
    res.send('You just sent a POST request to /hello!');
});

app.listen(3000);
        

Dans cet exemple, nous avons créé deux routes sur le chemin /hello. La première route est une requête GET qui envoie un message de bienvenue, et la deuxième est une requête POST qui répond à une soumission de données. Cet exemple montre comment gérer plusieurs méthodes HTTP sur la même route avec ExpressJS.

Pourquoi utiliser Express Router pour vos routes HTTP ?

Express Router permet de gérer de manière propre et structurée les routes dans votre application ExpressJS. En organisant les routes en modules distincts, vous améliorez la lisibilité, la maintenabilité et l’évolutivité de votre code. Voici quelques avantages clés :

  • Modularité : En séparant vos routes dans différents fichiers, vous pouvez mieux gérer les fonctionnalités de votre application sans rendre votre fichier principal (comme index.js) trop encombré.
  • Réutilisabilité : Vous pouvez réutiliser les routeurs dans différentes parties de votre application, facilitant ainsi le développement et les tests.
  • Maintenance facilitée : Au fur et à mesure que votre application devient plus complexe, diviser les routes en modules rend la maintenance du code beaucoup plus simple.

Utilisation avancée de Express.Router pour séparer vos routes efficacement

Pour séparer les routes de notre fichier principal index.js, nous allons utiliser Express.Router. Créez un nouveau fichier appelé things.js avec le code suivant :

📋 Copier le code

var express = require('express');
var router = express.Router();

router.get('/', function(req, res) {
    res.send('GET route on things.');
});

router.post('/', function(req, res) {
    res.send('POST route on things.');
});

module.exports = router;
        

Ensuite, dans votre fichier index.js, vous pouvez utiliser ce routeur comme suit :

📋 Copier le code

var express = require('express');
var app = express();
var things = require('./things.js');

app.get('/hello', function(req, res) {
    res.send("Hello World!");
});

// Inclure le routeur 'things'
app.use('/things', things);

app.listen(3000);
        

Cette configuration permet de gérer les routes définies dans le fichier things.js sous le chemin /things. Ainsi, toute demande reçue sur /things sera gérée par le routeur things.js.

Conclusion

Utiliser Express router pour séparer vos routes HTTP dans des modules distincts est une excellente manière d'améliorer la structure et la maintenabilité de votre code. En suivant ce ExpressJS routing tutorial, vous êtes maintenant capable de configurer des routes GET et POST, ainsi que d'utiliser Express.Router pour organiser efficacement vos routes.

ExpressJS - Méthodes HTTP

Une méthode HTTP est spécifiée dans chaque requête envoyée au serveur et indique l'opération demandée par le client. Voici les méthodes HTTP les plus couramment utilisées :

Méthode Description
GET La méthode GET demande une représentation de la ressource spécifiée. Elle est utilisée pour récupérer des données sans modifier l'état du serveur.
POST La méthode POST envoie des données au serveur pour créer une nouvelle ressource à l'URI spécifiée.
PUT La méthode PUT envoie des données au serveur pour modifier une ressource existante ou la créer si elle n'existe pas.
DELETE La méthode DELETE demande la suppression de la ressource spécifiée sur le serveur.

Ces méthodes sont les plus couramment utilisées dans le développement d'API avec ExpressJS.

Exemple d'utilisation des méthodes HTTP avec ExpressJS

Créons un fichier index.js dans le répertoire hello-world et insérons le code suivant :

📋 Copier le code

var express = require('express');
var app = express();

app.get('/', function(req, res){
    res.send("GET Request!");
});

app.post('/', function(req, res){
    res.send("POST Request!");
});

app.put('/', function(req, res){
    res.send("PUT Request!");
});

app.delete('/', function(req, res){
    res.send("DELETE Request!");
});

app.listen(3000);
    

Explication :

  • app.get('/') → Répond aux requêtes HTTP GET avec le message "GET Request!".
  • app.post('/') → Répond aux requêtes HTTP POST avec "POST Request!".
  • app.put('/') → Répond aux requêtes HTTP PUT avec "PUT Request!".
  • app.delete('/') → Répond aux requêtes HTTP DELETE avec "DELETE Request!".
  • app.listen(3000) → Démarre le serveur Express sur le port 3000.

Démarrer le serveur

Une fois le fichier enregistré, ouvrez votre terminal et exécutez :

📋 Copier le code

E:\Dev\hello-world>nodemon index.js
    

Le serveur se lance et vous devriez voir un message indiquant que l'application tourne correctement.

Tester les méthodes HTTP

Pour tester cette application :

  • Ouvrez votre navigateur et rendez-vous sur http://localhost:3000 pour voir la réponse de la méthode GET.
  • Utilisez un outil comme Postman pour tester les autres méthodes HTTP :

📋 Copier le code

POST   → http://localhost:3000/
PUT    → http://localhost:3000/
DELETE → http://localhost:3000/
    

Chaque requête retournera le message correspondant défini dans notre application ExpressJS.

Conclusion

Nous avons vu comment gérer les différentes méthodes HTTP avec ExpressJS. Ces méthodes sont essentielles pour la création d'API RESTful. Vous pouvez maintenant enrichir votre projet en ajoutant des middlewares, des routes dynamiques et une gestion des erreurs.

ExpressJS - Construction d'URL et Routes Dynamiques

En ExpressJS, nous pouvons définir des routes statiques, mais il est souvent nécessaire d'utiliser des routes dynamiques pour accepter des paramètres et traiter les requêtes en fonction de ces valeurs.

📌 Définition d'une Route Dynamique

Une route dynamique permet d'extraire des valeurs de l'URL. Voici un exemple de route acceptant un id comme paramètre :

📋 Copier le code

var express = require('express');
var app = express();

app.get('/:id', function(req, res){
    res.send('L\'ID spécifié est ' + req.params.id);
});

app.listen(3000);
    

🔹 Lorsque vous accédez à http://localhost:3000/123, la réponse sera :

"L'ID spécifié est 123"

📌 Passer Plusieurs Paramètres dans une Route

On peut également définir plusieurs paramètres dans une route :

📋 Copier le code

var express = require('express');
var app = express();

app.get('/things/:name/:id', function(req, res) {
    res.send('ID: ' + req.params.id + ' et Nom: ' + req.params.name);
});

app.listen(3000);
    

🔹 Exemple d'URL : http://localhost:3000/things/tutoriel/12345
🔹 Lorsque vous accédez à cette url vous optiendrez la réponse : ID: 12345 et Nom: tutoriel

📌 Restriction des Paramètres avec Regex

Pour s'assurer qu'un id soit exactement un nombre à 5 chiffres, on peut utiliser une expression régulière :

📋 Copier le code

var express = require('express');
var app = express();

app.get('/things/:id([0-9]{5})', function(req, res){
    res.send('ID: ' + req.params.id);
});

app.listen(3000);
    

🔹 Seules les requêtes avec un id de 5 chiffres (ex: 12345) seront acceptées.

📌 Gestion des Routes Invalides (Erreur 404)

Pour éviter les erreurs "Cannot GET <route>", il est recommandé d'ajouter une route par défaut :

📋 Copier le code

var express = require('express');
var app = express();

// Autres routes ici...

app.get('*', function(req, res){
    res.send('Désolé, cette URL est invalide.');
});

app.listen(3000);
    

🔹 Si l'utilisateur tente d'accéder à une route inexistante, il recevra le message :
"Désolé, cette URL est invalide."

📝 Conclusion

Les routes dynamiques en ExpressJS permettent de créer des URL flexibles et interactives. Grâce aux paramètres et aux expressions régulières, nous pouvons mieux contrôler nos routes et améliorer la gestion des erreurs.



Voir aussi nos tutoriel :

fonction convert_cyr_string, convert_cyr_string

Convertit une chaîne d'un jeu de caractères cyrillique l'autre

Balise table

Définit une table

les cookies

Les cookies : Définition et utilisation des cookies en javascript.