1.0.3 • Published 10 months ago

express-duplicate-request v1.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

express-duplicate-request

This middleware to Limit each IP duplicated requests per window made the client, due to lack of network, or nervous and frustrated endless cliking.

Inspiration from romch007 duplicate-requests

Install

$ npm install express-duplicate-request
# OR
$ yarn add express-duplicate-request

Usage

import { duplicateRequest } from "express-duplicate-request";
// OR
const { duplicateRequest } = require("express-duplicate-request");

const express = require("express");
const app = express();

const myDup = duplicateRequest({
  expiration: 500, // Can't duplicate request for 5 milliseconds each IP requests per `window`
});

// Apply the duplicate request middleware to all requests.
app.use(myDup);

app.get("/", (req, res) => res.end("Hey!"));

app.listen(9000, () => console.log("Listening!"));

Options

{
  expiration: 500 , /* Expiration time of the request in memory
                     * should be Number [1000 = 1 seconds]
                     */

  property: "id",   /* Property which contains the id
                     * should be a string or a function 
                     * with a req paramater which returns a string
                     */

  prefix: "article.add", // Prefix to group requests in storage

  errorHandling: {
    statusCode: 429, // The status code to send if request is duplicated
    json: {} // Javascript plain object to send if request is duplicated
  },

  connectionUri: "" // Leave empty to store object in memory, or use redis:// or mongodb://
}

Specific your Endpoint

// Declare Specific 1
const specificDup1 = duplicateRequest({
  expiration: 500, // Can't duplicate request for 5 milliseconds
});

// Declare Specific 1
const specificDup2 = duplicateRequest({
  expiration: 1000, // Can't duplicate request for 1 seconds
});

app.get("/", specificSlow1, (req, res) => res.end("Hey! 5 milliseconds"));
app.get("/", specificSlow2, (req, res) => res.end("Hey! 1 seconds"))
1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

11 months ago

0.1.20

11 months ago

0.1.19

11 months ago

0.1.18

11 months ago

0.1.17

11 months ago

0.1.15

11 months ago

0.1.14

11 months ago

0.1.11

11 months ago

0.1.10

11 months ago

0.1.9

11 months ago

0.1.8

11 months ago

0.1.7

11 months ago

0.1.6

11 months ago

0.1.5

11 months ago

0.1.4

11 months ago

0.1.3

11 months ago

0.1.2

11 months ago

0.1.1

11 months ago