API 参考
📚 目录
RateLimiter 类
构造函数
方法
check(key, options)
检查请求是否在限流内。
middleware()
创建 Express 风格的 (req, res, next) 中间件函数。Koa、Egg.js、Fastify、Hapi 等框架建议使用 check() 按各自的请求/响应语义封装适配器。
reset(key)
重置特定键的限制计数。
resetAll()
重置所有键的限制计数。
close()
关闭当前 limiter 拥有的存储资源。store: 'redis://...' 创建的 Redis client 会在这里关闭;外部传入的 Redis client 默认仍由调用方管理。
配置选项速查
Store 接口速查
自定义 Store 至少需要实现 increment、get、set 和 reset;decrement 用于固定窗口回滚,resetAll 用于全量清理。若实现 checkFixedWindow、checkSlidingWindow、checkTokenBucket、checkLeakyBucket 等快路径,算法层会优先使用它们。
响应头
当设置 headers: true 时,会添加以下响应头:
X-RateLimit-Limit- 允许的最大请求数X-RateLimit-Remaining- 当前窗口剩余请求数X-RateLimit-Reset- 速率限制重置的时间(Unix 时间戳)Retry-After- 重试前等待的秒数(仅在速率受限时)
导出
RateLimiter
主类,用于创建限流器实例。
RedisStore
Redis 存储后端。
new RedisStore({ client }) 默认不关闭外部 Redis client;设置 ownsClient: true 后,await store.close() 或 await limiter.close() 会关闭该 client。
MemoryStore
内存存储后端(通常不需要直接使用)。
CacheHubStore
基于 cache-hub@2.2.4 的原子状态后端。可使用内存模式,也可传入 Redis client 使用 Redis Lua 原子路径。
预定义键生成器
预定义的键生成器对象。
错误处理
常见错误
示例代码
基本使用
中间件使用
Redis 使用
CacheHubStore 使用
📚 相关文档
使用指南:
返回:
- 📖 文档中心 - 查看所有文档和学习路径