🌈个人主页:前端青山
🔥系列专栏:node.js篇
🔖人终将被年少不可得之物困其一生
依旧青山,本期给大家带来node.js篇专栏内容:node.js-API 限流与日志优化
前言
在前几篇文章中,我们已经为 API 添加了身份验证、CORS 配置、缓存机制和性能监控。本文将继续在这个基础上,进一步增强 API 的稳定性和可维护性。我们将添加 API 限流功能,并对日志进行优化,以便更好地跟踪和调试应用。
目录
1. 添加 API 限流
为了防止 API 被恶意请求或滥用,我们可以添加 API 限流功能。这有助于保护服务器免受 DDoS 攻击,并确保正常用户的请求能够得到及时响应。我们将使用 express-rate-limit
库来实现这一功能。
1.1 安装依赖
首先,我们需要安装 express-rate-limit
库。打开终端,导航到项目根目录,然后运行以下命令:
npm install express-rate-limit
1.2 创建限流中间件
接下来,我们在 middlewares
目录下创建一个名为 rateLimiter.js
的文件,用于定义限流中间件。
const rateLimit = require('express-rate-limit');
const apiLimiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 分钟
max: 100, // 每个 IP 允许的最大请求数
message: 'Too many requests from this IP, please try again later.',
});
module.exports = apiLimiter;
在这个中间件中,我们设置了每个 IP 在 15 分钟内最多只能发送 100 个请求。如果超过这个限制,客户端将收到一条提示消息,告知其请求过多,需要稍后再试。
1.3 应用限流中间件
最后,我们需要在 app.js
文件中应用这个限流中间件。打开 app.js
文件,添加以下代码:
require('dotenv').config();
const express = require('express');
const helmet = require('helmet');
const comp