express-request-limiter
v0.0.4
Published
Request limiting middleware for Express applications
Maintainers
Readme
Express request-limiter
Request limiting middleware for Express applications
npm install express-request-limiter --saveUsage
Globally on application
var express = require('express');
var RequestLimiter = require('express-request-limiter');
var app = express();
const requestLimiter = RequestLimiter({
maxRequests: 10,
headers: true,
routesList: [{ path: '/api/first', method: 'GET' }, { path: '/api/second', method: 'PUT' }],
});
app.use(requestLimiter);
app.get('/api/first', function (req, res) {
res.send(200, 'ok')
})Separately on each route
var express = require('express');
var RequestLimiter = require('express-request-limiter');
var app = express();
const requestLimiter = RequestLimiter({
maxRequests: 10,
global: false,
headers: true
});
``` js
app.get('/user/first', requestLimiter, function (req, res) {
// request logic
...
})API options
RequestLimiter(options)maxRequests:Numberthe number of maximum concurrent requests at a time. Default to 10.routesList:Arraythe list of objects that are specify router path and method which are will be monitored.routesList.path:Stringrouter path.routesList.method:Stringrequest method.global:Booleanthe flag that is indicates do the limiter will be global or local for an application. Default totrue.headers:Booleanthe flag that enable headers for request limit (X-RequestLimit-Limit) and current usage (X-RequestLimit-Usage) on all responses. Default totrue.message:Stringthe error message sent to user whenmaxRequestsis exceeded. Defaults to 'Too many requests, please try again later.'statusCode:NumberHTTP status code returned whenmaxRequestsis exceeded. Defaults to 429.skip:Functionthe function used to skip (whitelist) requests. Returning true from the function will skip limiting for that request. Defaults to always false (count all requests):
function (/*req, res*/) {
return false;
}handler: The function to handle requests once themaxRequestslimit is exceeded. It receives the request and the response objects. The "next" param is available if you need to pass to the next middleware.
Defaults to:
function (req, res, /*next*/) {
res.status(options.statusCode).send(options.message);
}onRateLimited:Functioncalled when a request exceeds the configured rate limit.
License MIT
MIT © Iaroslav Zhbankov
