express-rate-limitОсновное ограничение скорости промежуточного программного обеспечения для Express. Используйте для ограничения повторяющихся запросов для публичных API и/или конечных точек, таких как сброс пароля. Хорошо играет с экспресс-точкой и Ratelimit-Header-Parser.
Полная документация доступна в режиме онлайн.
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 )Ограничитель скорости поставляется со встроенным хранилищем памяти и поддерживает различные запасы внешних данных.
Все параметры функции могут быть асинхронными. Нажмите на имя для получения дополнительной информации и значений по умолчанию.
| Вариант | Тип | Замечания |
|---|---|---|
windowMs | number | Как долго запомнить запросы, в миллисекундах. |
limit | number | function | Сколько запросов разрешить. |
message | string | json | function | Ответ на возврат после достижения предела достигнут. |
statusCode | number | Код состояния HTTP после достижения предела (по умолчанию 429). |
handler | function | Функция для запуска после достижения предела (переопределяет настройки message и statusCode , если установлено). |
legacyHeaders | boolean | Включить заголовок X-Rate-Limit . |
standardHeaders | 'draft-6' | 'draft-7' | 'draft-8' | Включить заголовок Ratelimit . |
identifier | string | function | Имя, связанное с политикой квот, обеспеченной этим ограничителем. |
store | Store | Используйте пользовательский магазин, чтобы обмениваться количеством ударов по нескольким узлам. |
passOnStoreError | boolean | Разрешить ( true ) или block ( false , default) трафик, если магазин становится недоступным. |
keyGenerator | function | Определите пользователей (по умолчанию IP -адрес). |
requestPropertyName | string | Добавьте информацию о пределе скорости в объект req . |
skip | function | Вернуть true , чтобы обойти ограничитель для данного запроса. |
skipSuccessfulRequests | boolean | Uncount 1xx/2xx/3xx ответы. |
skipFailedRequests | boolean | Uncount 4xx/5xx ответы. |
requestWasSuccessful | function | Используется skipSuccessfulRequests и skipFailedRequests . |
validate | boolean | object | Включить или отключить встроенные проверки проверки. |
Спонсируется Zuplo полностью управляемым API Gateway для разработчиков. Добавьте динамическое ограничение скорости, аутентификацию и многое другое в любой API за считанные минуты. Узнайте больше на Zuplo.com

Благодаря Mintlify за размещение документации на Express-rate-limit.mintlify.app
Наконец, спасибо всем, кто внес свой вклад в этот проект! ?
Если вы столкнетесь с ошибкой или хотите увидеть что -то добавленное/измененное, пожалуйста, откройте проблему! Если вам нужна помощь с чем -то, не стесняйтесь начать обсуждение!
Если вы хотите внести свой вклад в библиотеку, спасибо! Во -первых, пожалуйста, прочитайте руководство. Затем вы можете поднять любую проблему и исправить/реализовать!
MIT © Натан Фридли, Ведант К