express-rate-limitMiddleware limitant les taux de base pour Express. Utilisez pour limiter les demandes répétées aux API publiques et / ou aux points de terminaison tels que la réinitialisation du mot de passe. Joue bien avec l'express-slow-down et le ratelimit-header-parser.
La documentation complète est disponible en ligne.
import { rateLimit } from 'express-rate-limit'
const limiter = rateLimit ( {
windowMs : 15 * 60 * 1000 , // 15 minutes
limit : 100 , // Limit each IP to 100 requests per `window` (here, per 15 minutes).
standardHeaders : 'draft-8' , // draft-6: `RateLimit-*` headers; draft-7 & draft-8: combined `RateLimit` header
legacyHeaders : false , // Disable the `X-RateLimit-*` headers.
// store: ... , // Redis, Memcached, etc. See below.
} )
// Apply the rate limiting middleware to all requests.
app . use ( limiter )Le limiteur de taux est livré avec un magasin de mémoire intégré et prend en charge une variété de magasins de données externes.
Toutes les options de fonction peuvent être asynchrones. Cliquez sur le nom pour des informations supplémentaires et des valeurs par défaut.
| Option | Taper | Remarques |
|---|---|---|
windowMs | number | Combien de temps pour se souvenir des demandes, en millisecondes. |
limit | number | function | Combien de demandes à autoriser. |
message | string | json | function | La réponse au retour après limite est atteinte. |
statusCode | number | Le code d'état HTTP après la limite est atteint (par défaut est 429). |
handler | function | La fonction à exécuter après la limite est atteinte (remplace les paramètres message et statusCode , si défini). |
legacyHeaders | boolean | Activez l'en-tête X-Rate-Limit . |
standardHeaders | 'draft-6' | 'draft-7' | 'draft-8' | Activez l'en-tête Ratelimit . |
identifier | string | function | Nom associé à la politique de quota appliquée par ce limiteur de taux. |
store | Store | Utilisez un magasin personnalisé pour partager le nombre de coups sur plusieurs nœuds. |
passOnStoreError | boolean | Autoriser le trafic ( true ) ou bloquer ( false , par défaut) si le magasin devient indisponible. |
keyGenerator | function | Identifier les utilisateurs (par défaut à l'adresse IP). |
requestPropertyName | string | Ajoutez des informations de limite de taux à l'objet req . |
skip | function | RETOUR true pour contourner le limiteur de la demande donnée. |
skipSuccessfulRequests | boolean | Réponses 1xx / 2xx / 3xx Uncound. |
skipFailedRequests | boolean | Réponses 4xx / 5xx un inconvénients. |
requestWasSuccessful | function | Utilisé par skipSuccessfulRequests et skipFailedRequests . |
validate | boolean | object | Activer ou désactiver les vérifications de validation intégrées. |
Parrainé par Zuplo, une passerelle API entièrement gérée pour les développeurs. Ajouter la limitation de taux dynamique, l'authentification et plus encore à n'importe quelle API en quelques minutes. En savoir plus sur zuplo.com

Merci à Mintlify pour l'hébergement de la documentation sur express-rate-mimit.mintlify.app
Enfin, merci à tous ceux qui ont contribué à ce projet de quelque manière que ce soit! ?
Si vous rencontrez un bug ou que vous souhaitez voir quelque chose d'ajouté / changé, veuillez ouvrir un problème! Si vous avez besoin d'aide pour quelque chose, n'hésitez pas à commencer une discussion!
Si vous souhaitez contribuer à la bibliothèque, merci! Tout d'abord, veuillez lire le guide de contribution. Ensuite, vous pouvez récupérer n'importe quel problème et le résoudre / l'implémenter!
MIT © Nathan Friedly, Vedant K