UNPKG

caesarjs

Version:

A microservice framework for node.js implementing client-server mutual certificate authentication

26 lines (19 loc) 786 B
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(); };