caesarjs
Version:
A microservice framework for node.js implementing client-server mutual certificate authentication
26 lines (19 loc) • 786 B
JavaScript
const PluginBuilder = require('../../plugin/plugin-builder');
module.exports = ( maxNumberOfRequests = 1000 ) => {
const pluginBuilder = new PluginBuilder('max-number-of-request-plugin', 'Caesar.js max number of requests plugin', 'Caesar.js team', '0.0.1');
pluginBuilder.addMiddleware((req, res, next) => {
if(req.path.indexOf('/user-route/') != -1)
{
const count = req.statsDb.getTodayCount();
if(count > maxNumberOfRequests)
{
let error = new Error('Maximum allowance has been exceeded for today.');
error.status = 500;
throw error;
}
req.statsDb.addDailyStatCount();
}
next();
});
return pluginBuilder.buildPlugin();
};