promise based redis request limiter
npm install last-word --save
const ms = require('ms');
const lastWord = require('last-word')({
limit: 3, // number of request before blocked
timeLimit: ms('1s'), // time in milliseconds when number of requests are cleared
blockTime: ms('2s'), // block time when
client: client, // instance of the redis client
message: 'Limit Reached', // Your custom error message
Error: YourNewAwesomeError, // Your custom error type
});
app.get('/message', function(req, res, next){
const key = 'spam_' + req.user.id;
lastWord(key).then(function() {
// do your magic here
}).catch(next);
});
Name | Description | Default |
---|---|---|
client(required) | instance of the redis client | null |
limit | Number of request before blocked | 10 |
timeLimit | time in milliseconds when number of requests are cleared | ms('30s') |
blockTime | How long request key will be blocked, after reaching the limit | ms('5m') |
message | Custom error message | Request limit reached |
Error | Custom error type | Error |
MIT
name is taken from one of the spells of dota 2 silencer hero