¿Qué es Express-rate-limit en Node.js?

Node.js es un entorno de tiempo de ejecución multiplataforma y de código abierto basado en el motor JavaScript V8 de Chrome para ejecutar código JavaScript fuera de un navegador. Debe recordar que NodeJS no es un marco y no es un lenguaje de programación. Proporciona un entorno de tiempo de ejecución multiplataforma y de E/S sin bloqueo (asincrónico) basado en eventos para crear aplicaciones del lado del servidor altamente escalables mediante JavaScript.

En este artículo, aprenderemos sobre el límite de Express-Rate.

Límite de velocidad exprés: la limitación de velocidad evita que la misma dirección IP realice demasiadas requests, lo que nos ayudará a prevenir ataques como la fuerza bruta. 

Dependencia requerida:

npm install express-rate-limit

Configuración del proyecto: ejecute los siguientes conjuntos de comandos para crear una carpeta e inicializar el proyecto.

mkdir test-project
cd test-project
npm init -y

Estructura del proyecto:

 

Ejemplo: escriba el siguiente código en el archivo App.js.

Javascript

// Express is node framework that helps
// in setting up the server and routing.
const express = require("express");
  
// The express-rate-limit is for
// limiting the incoming request.
const rateLimit = require("express-rate-limit");
  
// App variable store the express module.
const app = express();
  
// Creating a limiter by calling rateLimit function with options:
// max contains the maximum number of request and windowMs
// contains the time in millisecond so only max amount of
// request can be made in windowMS time.
const limiter = rateLimit({
    max: 200,
    windowMs: 60 * 60 * 1000,
    message: "Too many request from this IP"
});
  
// Add the limiter function to the express middleware
// so that every request coming from user passes
// through this middleware.
app.use(limiter);
  
// GET route to handle the request coming from user
app.get("/", (req, res) => {
    res.status(200).json({
        status: "success",
        message: "Hello from the GeeksforGeeks express server"
    });
});
  
// Server Setup
const port = 8000;
app.listen(port, () => {
    console.log(`app is running on port ${port}`);
});

Pasos para ejecutar la aplicación: Ejecute el siguiente comando en la terminal:

node app.js

Salida: Veremos la siguiente salida en la pantalla del terminal.

app is running on http://localhost:8000/
  • Salida cuando una solicitud no excede el límite máximo del limitador de velocidad:

 

  • Salida cuando una solicitud excede el límite máximo del limitador de velocidad:

 

Publicación traducida automáticamente

Artículo escrito por nikitamehrotra99 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *