express-rate-limitEl middleware básico de limitación de la velocidad para express. Use para limitar las solicitudes repetidas a API públicas y/o puntos finales, como el reinicio de la contraseña. Juega bien con un parador expreso de lento y ratelimit-header.
La documentación completa está disponible en línea.
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 )El limitador de velocidad viene con una tienda de memoria incorporada y admite una variedad de tiendas de datos externas.
Todas las opciones de función pueden ser asíncronas. Haga clic en el nombre para obtener información adicional y valores predeterminados.
| Opción | Tipo | Observaciones |
|---|---|---|
windowMs | number | Cuánto tiempo recordar las solicitudes de, en milisegundos. |
limit | number | function | Cuántas solicitudes para permitir. |
message | string | json | function | La respuesta al retorno después del límite se alcanza. |
statusCode | number | El código de estado HTTP después del límite se alcanza (el valor predeterminado es 429). |
handler | function | Se alcanza la función para ejecutarse después del límite (anula message y la configuración statusCode , si se establece). |
legacyHeaders | boolean | Habilite el encabezado X-Rate-Limit |
standardHeaders | 'draft-6' | 'draft-7' | 'draft-8' | Habilite el encabezado Ratelimit . |
identifier | string | function | Nombre asociado con la política de cuota impuesta por este limitador de tasas. |
store | Store | Use una tienda personalizada para compartir los recuentos de golpes en múltiples nodos. |
passOnStoreError | boolean | Permitir ( true ) o bloquear ( false , predeterminado) tráfico si la tienda no está disponible. |
keyGenerator | function | Identificar a los usuarios (predeterminados a la dirección IP). |
requestPropertyName | string | Agregar información de límite de velocidad al objeto req . |
skip | function | Devuelve true para omitir el limitador para la solicitud dada. |
skipSuccessfulRequests | boolean | Uncento 1xx/2xx/3xx respuestas. |
skipFailedRequests | boolean | Respuestas 4xx/5xx. |
requestWasSuccessful | function | Utilizado por skipSuccessfulRequests y skipFailedRequests . |
validate | boolean | object | Habilitar o deshabilitar las verificaciones de validación incorporadas. |
Patrocinado por Zuplo, una puerta de enlace API totalmente administrada para desarrolladores. Agregue la limitación de la velocidad dinámica, la autenticación y más a cualquier API en minutos. Obtenga más información en Zuplo.com

Gracias a Mintlify por alojar la documentación en Express-thate-Limit.Mintlify.App
Finalmente, ¡gracias a todos los que han contribuido a este proyecto de alguna manera! ?
Si encuentra un error o desea ver algo agregado/cambiado, ¡adelante y abra un problema! Si necesita ayuda con algo, ¡no dude en comenzar una discusión!
Si desea contribuir a la biblioteca, ¡gracias! Primero, lea la guía contribuyente. ¡Entonces puede recoger cualquier problema y solucionarlo/implementarlo!
MIT © Nathan friedly, Vedant K