View as Json

Rate Limiter

The Rate Limiter component protects your application from abuse, denial-of-service (DoS) attacks, and brute-force attempts by limiting the frequency of incoming requests from a single IP address.


Installation Guide

npx servercn-cli@latest add rate-limiter

Usage Guide

Global Rate Limit

app.ts
import express from "express";
import { rateLimiter } from "./middlewares/rate-limiter";
 
const app = express();
 
app.use(
  rateLimiter({
    limit: 100,
    duration: "1 m",
    prefix: "@servercn/global"
  })
);
 
app.listen(3000, () => {
  console.log("Server is running on port 3000");
});

Route-Specific Rate Limit

src/routes/auth.routes.ts
import { Router } from "express";
import { rateLimiter } from "../middlewares/rate-limiter";
 
const router = Router();
 
router.post(
  "/login",
  rateLimiter({
    limit: 10,
    duration: "1 m",
    strategy: "fixedWindow",
    prefix: "@servercn/login",
    message: "Too many login attempts."
  }),
  loginController
);
 
export default router;
upstash
ioredis
express-rate-limiter

File & Folder Structure

Loading files...

Installation

npx servercn-cli@latest add rate-limiter