@markkuhn/express-rate-limiter

Express rate limiter for apps using mongoose

Usage no npm install needed!

<script type="module">
  import markkuhnExpressRateLimiter from 'https://cdn.skypack.dev/@markkuhn/express-rate-limiter';
</script>

README

MIT License

GitHub repo size

Mongoose Express Rate Limiter

Express rate limiter for apps using mongoose

Installation

npm i @markkuhn/express-rate-limiter

Usage

var express = require('express');
var app = express();
var mongoose = require('mongoose');

var rateLimiter = require('@markkuhn/express-rate-limiter');

app.use(rateLimiter({
    requestsPerMinute: 100,
    identifier: function(req) {
        return req.headers['x-forwarded-to'];
    },
    onBlocked: function(req, res) {
        res.sendStatus(429);
        console.log('Too many requests');
    }
}));

API options

rateLimiter(options)
  • requestsPerMinute : Number amount of requests allowed per minute (default: 60).

  • identifier : Function returns an identifier for a request (default: req.headers['x-forwarded-to'] || req.connection.remoteAddress).

  • onBlocked : Function called when limit has been reached (default: res.sendStatus(429)).