express rate limit
v7.5.0
express-rate-limitExpress用の基本レート制限ミドルウェア。パスワードリセットなどのパブリックAPIおよび/またはエンドポイントへの繰り返しのリクエストを制限するために使用します。 Express-Slow-Downと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 | 1xx/2xx/3xxのuncount応答。 |
skipFailedRequests | boolean | 4xx/5xxの概要応答。 |
requestWasSuccessful | function | skipSuccessfulRequestsとskipFailedRequestsによって使用されます。 |
validate | boolean | object | 組み込みの検証チェックを有効または無効にします。 |
開発者向けの完全に管理されたAPIゲートウェイであるZuploが後援しています。数分で動的レート制限、認証などをAPIに追加します。 Zuplo.comで詳細をご覧ください

Express-Rate-Limit.mintlify.appでドキュメントをホストしてくれたMintlifyに感謝します
最後に、このプロジェクトに貢献してくれたすべての人に感謝します! ?
バグに遭遇したり、追加/変更されたものを見たい場合は、先に進んで問題を開いてください!何かを手伝う必要がある場合は、お気軽にディスカッションを開始してください!
図書館に貢献したい場合は、ありがとう!まず、寄稿ガイドをお読みください。次に、問題を選択して修正/実装できます!
MIT©Nathan Friedly、Vedant k