Skip to content

Instantly share code, notes, and snippets.

@jrf0110
Created May 1, 2013 02:00
Show Gist options
  • Save jrf0110/5493304 to your computer and use it in GitHub Desktop.
Save jrf0110/5493304 to your computer and use it in GitHub Desktop.
Simple ass rate-limiting express middleware - Probably very naive
/**
* Rate Limiter
**/
var questers = {};
module.exports = function(limit){
return function(req, res, next){
if (questers[req.ip]) return res.status(403).end();
questers[req.ip] = setTimeout(function(){
delete questers[req.ip];
}, limit);
next();
};
};
var rateLimit = require('./middleware/rate-limiter');
app.post('/something'
, rateLimit(2000) // Limit requests to every 2 seconds
, myLittleHandler
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment