1.0.3 • Published 4 years ago

guy-rate-limiter v1.0.3

Weekly downloads
1
License
ISC
Repository
github
Last release
4 years ago

guy-rate-limiter

A distrebuted Rate Limiter Allowing each user to perform up to 500 requests in a 60 seconds time frame.

Install

$ npm install --save guy-rate-limiter

Configuration

The Default Rate Limiter Redis Configuration uses: host = 127.0.0.1 port = 6379

To Change it set the environment variables:

RATE_LIMIT_REDIS_PORT

RATE_LIMIT_REDIS_HOST

By running:

$ export RATE_LIMIT_REDIS_PORT=[REDIS_PORT]
$ export RATE_LIMIT_REDIS_HOST=[REDIS_HOST]

Or in any other way

USAGE EXAMPLE

export RATE_LIMIT_REDIS_PORT=6378 There are two options to use:

  1. use as an express middleware
const express = require('express')
const rateLimiter = require('guy-rate-limiter');
const app = express();
const port = 3000;

app.use((req, res, next) => {
  req.userID = req.query.uid || 'UNKNOWN'; 
  next();
});
const rateLimitMiddleware = rateLimiter.getExpressMiddleware('ip');
app.use(rateLimitMiddleware);
app.get('/', function (req, res) {
  res.send(`Hello ${req.userID}`);
});

 
app.listen(port)
  1. use only the rate limitter
const rateLimiter = require('guy-rate-limiter');

rateLimiter.handleUserRequest(userId,(err,allow) => {
      if(err) {
        //handle error
      }
      else if (!allow){
        //handle block
      }
      else {
        //handle allow
      }
  });
1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago