feat: implement rate limit

This commit is contained in:
dancingCycle 2023-12-21 07:34:02 +01:00
parent 03eea6fa5e
commit dd350f7d79
2 changed files with 20 additions and 0 deletions

View File

@ -6,6 +6,7 @@ const HELMET = require('helmet');
const COMPRESSION = require('compression');
const express = require("express");
const rateLimitMiddleware = require("./middlewares/ratelimit");
const CORS = require("cors");
//get API root with alive msg
@ -158,6 +159,9 @@ let whitelist = [
const app = express();
//limit rate
app.use(rateLimitMiddleware);
//compress all routes
app.use(COMPRESSION());

View File

@ -0,0 +1,16 @@
const debug=require('debug')('debug');
const setRateLimit = require("express-rate-limit");
const limit = parseInt(process.env.RATE_LIMIT, 10)||120;
debug('rate limit: '+ limit);
// Rate limit middleware
const rateLimitMiddleware = setRateLimit({
windowMs: 60 * 1000,
max: limit,
message: `You have exceeded your ${limit} requests per minute limit.`,
headers: true,
});
module.exports = rateLimitMiddleware;