Sequence NODE_255
MediumImplement Request Rate Limiting Middleware
Express.js
Node.js
Technical Specification
Create simple in-memory rate-limiting middleware limiting each IP to N requests per minute.
Input/Output Samples
Input:20 requests in a minute with limit=10
Output:First 10 OK, then 429
Optimal Logic Path
const buckets = new Map();
function rateLimit(limit = 60, windowMs = 60000) {
return (req, res, next) => {
const ip = req.ip;
const now = Date.now();
const list = (buckets.get(ip) || []).filter((ts) => now - ts < windowMs);
if (list.length >= limit) {
buckets.set(ip, list);
return res.status(429).json({ error: "Too many requests" });
}
list.push(now);
buckets.set(ip, list);
next();
};
}
app.use(rateLimit(60, 60000));Architectural Deep-Dive
We reuse the classic sliding window logic and convert denial into HTTP 429 responses.