Express 面试题
目录

Express 中如何限制请求频率?

· 约 2 分钟读完 · 第 72 / 120 章

推荐答案

在 Express 中限制请求频率可以通过使用 express-rate-limit 中间件来实现。以下是一个简单的示例:

本题详细解读

1. express-rate-limit 中间件的作用

express-rate-limit 是一个用于限制请求频率的中间件。它可以帮助你防止恶意用户通过频繁请求来消耗服务器资源。通过设置时间窗口和最大请求次数,你可以控制每个客户端在一定时间内可以发起的请求数量。

2. 配置选项

  • windowMs: 定义时间窗口的长度,单位为毫秒。例如,15 * 60 * 1000 表示15分钟。
  • max: 定义在时间窗口内允许的最大请求次数。例如,100 表示每个IP在15分钟内最多允许100次请求。
  • message: 当请求超过限制时,返回给客户端的消息。

3. 应用中间件

通过 app.use(limiter) 将限制中间件应用到所有路由上。你也可以根据需要将中间件应用到特定的路由上。

4. 其他注意事项

  • 你可以通过 skip 选项来跳过某些请求的限制,例如跳过某些IP地址或特定路径的请求。
  • express-rate-limit 还支持存储请求计数的方式,默认使用内存存储,但你也可以配置为使用 Redis 等外部存储。

通过这种方式,你可以有效地控制请求频率,保护你的应用免受恶意请求的影响。