fensr
Version:
Fensr – Throttle wisely. Protect efficiently. A fast, Redis-powered rate limiting middleware for Node.js and Express.
27 lines (23 loc) • 709 B
text/typescript
import rateLimit from "express-rate-limit";
import RedisStore from "rate-limit-redis";
import { createClient } from "redis";
const redisClient = createClient({
socket: {
host: process.env.REDIS_HOST,
port: Number(process.env.REDIS_PORT),
},
username: process.env.REDIS_USERNAME,
password: process.env.REDIS_PASSWORD,
});
redisClient.connect();
export function createRateLimiter() {
return rateLimit({
windowMs: 60 * 1000, // 1 minute
max: 5, // limit each IP to 5 requests per window
standardHeaders: true,
legacyHeaders: false,
store: new RedisStore({
sendCommand: (...args: string[]) => redisClient.sendCommand(args),
}),
});
}