Skip to content

Commit 76de564

Browse files
author
meetDeveloper
committed
Added rate limiter.
1 parent 253145c commit 76de564

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

app.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const { JSDOM } = require('jsdom'),
22
express = require('express'),
3-
app = express(),
3+
rateLimit = require("express-rate-limit"),
44

55
utils = require('./modules/utils.js'),
66
errors = require('./modules/errors.js'),
@@ -10,6 +10,12 @@ const { JSDOM } = require('jsdom'),
1010
{ DOMParser } = new JSDOM().window,
1111
parser = new DOMParser(),
1212

13+
app = express(),
14+
limiter = rateLimit({
15+
windowMs: 5 * 60 * 1000, // 5 minutes
16+
max: 450 // limit each IP to 450 requests per windowMs
17+
}),
18+
1319
// Versions
1420
V1 = 'v1',
1521
V2 = 'v2',
@@ -58,6 +64,8 @@ function handleError (error = {}) {
5864

5965
app.set('trust proxy', true);
6066

67+
app.use(limiter);
68+
6169
app.get('/api/:version/entries/:language/:word', async (req, res) => {
6270
let { word, language, version } = req.params,
6371
include = _.reduce(_.get(req.query, 'include', '').split(','), (accumulator, current) => {

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"license": "ISC",
1212
"dependencies": {
1313
"express": "^4.17.1",
14+
"express-rate-limit": "^5.3.0",
1415
"jsdom": "^15.2.1",
1516
"lodash": "^4.17.20",
1617
"node-fetch": "^2.6.0",

0 commit comments

Comments
 (0)