UNPKG

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
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), }), }); }