express rate limit
v7.5.0
express-rate-limitExpress的基本速率限制中間件。用於將重複的請求限制為公共API和/或端點,例如密碼重置。與快速降低和比率 - 頭 - 頭前選手一起表現出色。
完整的文檔可在線可用。
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 | 使用自定義商店在多個節點上共享HIT計數。 |
passOnStoreError | boolean | 如果商店不可用,則允許( true )或塊( false ,默認)流量。 |
keyGenerator | function | 標識用戶(默認為IP地址)。 |
requestPropertyName | string | 將速率限制信息添加到req對象。 |
skip | function | 返回true以繞過給定請求的限制器。 |
skipSuccessfulRequests | boolean | 取消1xx/2xx/3xx響應。 |
skipFailedRequests | boolean | 取消4xx/5xx響應。 |
requestWasSuccessful | function | 由skipSuccessfulRequests和skipFailedRequests使用。 |
validate | boolean | object | 啟用或禁用內置驗證檢查。 |
由Zuplo贊助的開發人員完全管理的API網關。在幾分鐘內將動態速率限制,身份驗證等添加到任何API。在zuplo.com上了解更多信息

感謝Mintlify在Express-Limit.mintlify.app上託管了該文檔
最後,感謝所有以任何方式為這個項目做出貢獻的人! ?
如果您遇到錯誤或想看到添加/更改的內容,請繼續開放問題!如果您需要一些幫助,請隨時開始討論!
如果您想為圖書館做貢獻,謝謝!首先,請閱讀貢獻指南。然後,您可以選擇任何問題並解決/實施!
麻省理工學院©Nathan Friedly,Vedant K