feat: implement rate limit
This commit is contained in:
parent
03eea6fa5e
commit
dd350f7d79
|
@ -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());
|
||||
|
||||
|
|
|
@ -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;
|
Loading…
Reference in New Issue