Unneccesary request rate limitter
"drossel-rate-limit" is append rate limit to request.
Compatible to Express and ioredis.
step1: npm install
npm install drossel-rate-limit
step2: import and settings
const express = require('express');
const Redis = require('ioredis');
const RateLimit = require('drossel-rate-limit');
const app = express();
app.use(new RateLimit({
store: new Redis('redis://localhost'),
time: 60, // 1 minutes
limit: 10, // 10 requests
prefix: 'limit:',
message: 'too large request.'
}));
Specify redis client. (Compatible to ioredis)
Period to request count. Default value is 60 second.
Allow max request count. Default value is 10 count.
Redis key prefix. Default value is "limit:"
If limit over, response this message. (status code is 429) Default value is "Too many requests, please try again later."
"DrosselRateLimit" is append request Header.
- "X-Rate-Limit-Limit": max request count
- "X-Rate-Limit-Remaining": current request count
- "X-Rate-Limit-Reset": reset time of the remaining count
if under limit, not update redis expire. if over limit, reset expire from the beginning.