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