Geolocalisation Repérer la position géographique
Apprenez à ralentir les réponses avec ExpressJS dans ce tutoriel simple pour débutants. Contrôlez les requêtes facilement
Dans ce tutoriel, nous allons apprendre à ralentir les réponses dans une application ExpressJS, c’est-à-dire ajouter un délai progressif aux requêtes pour décourager les abus sans bloquer complètement les utilisateurs. Ce guide est conçu pour les débutants : nous irons doucement, étape par étape, avec des explications très simples et un exemple que vous pourrez tester. Nous utiliserons express-slow-down pour gérer ce ralentissement.
Le ralentissement des réponses, c’est comme dire "Attends un peu !" à quelqu’un qui frappe trop vite à votre porte. Au lieu de bloquer totalement (comme avec la limitation de débit), on ajoute un petit retard qui augmente à chaque tentative rapide. Avec ExpressJS, express-slow-down
agit comme un frein doux pour protéger votre serveur, utile contre les essais répétés (comme deviner un mot de passe).
Avant de coder, préparons tout ce qu’il faut. Si vous avez suivi les tutoriels précédents, vous avez déjà Node.js et ExpressJS. Voici les étapes :
node -v
. Si une version apparaît (ex. : v16.13.0), c’est bon. Sinon, téléchargez Node.js sur nodejs.org.cd chemin/vers/ralentissement-reponses
, puis tapez npm init -y
. Cela crée un fichier package.json
.npm install express express-slow-down
. express-slow-down
gère le ralentissement pour nous.Construisons une application simple où les réponses ralentissent après plusieurs requêtes rapides.
Créez un fichier nommé app.js
dans votre dossier "ralentissement-reponses" et ajoutez ce code :
var express = require('express'); var slowDown = require('express-slow-down'); var app = express(); // Configurer le ralentissement var speedLimiter = slowDown({ windowMs: 60 * 1000, // 1 minute delayAfter: 3, // Ralentir après 3 requêtes delayMs: 500 // Ajouter 500ms de délai par requête après la limite }); // Appliquer le ralentissement à toutes les routes app.use(speedLimiter); // Route principale app.get('/', function(req, res) { res.send('Bonjour ! Les réponses ralentissent après 3 visites rapides.'); }); // Route de test app.get('/test', function(req, res) { res.send('Page de test avec ralentissement aussi !'); }); app.listen(3000, function() { console.log('Serveur démarré sur http://localhost:3000'); });
Voici chaque partie expliquée très simplement pour les débutants :
windowMs: 60 * 1000
: Fenêtre de temps de 1 minute.delayAfter: 3
: Ralentissement après 3 requêtes dans cette fenêtre.delayMs: 500
: Ajoute 500 millisecondes (0,5 seconde) de délai par requête supplémentaire.Démarrez le serveur avec node app.js
dans le terminal, puis testez :
Attendez une minute, et le compteur se réinitialise : les réponses redeviennent rapides.
Félicitations ! Vous savez maintenant ralentir les réponses avec ExpressJS et express-slow-down
. Votre application peut décourager les abus tout en restant accessible. Pour aller plus loin, explorez notre prochain tutoriel sur Tests avec ExpressJS ou consultez la documentation express-slow-down.