¿Cómo pasar variables al siguiente middleware usando next() en Express.js?

El siguiente ejemplo cubre cómo pasar variables al siguiente middleware usando next() en Express.js.

Acercarse:

No podemos pasar datos directamente al siguiente middleware, pero podemos enviar datos a través del objeto de solicitud.

[Middleware 1] [Middleware 2]
request.mydata = someData; ——-> let dataFromMiddleware1 = request.mydata;

Instalación del módulo Express:

Puede visitar el enlace Instalar módulo express . Puede instalar este paquete usando este comando.

npm install express

Después de eso, puede crear una carpeta y agregar un archivo, por ejemplo, index.js. Para ejecutar este archivo, debe ejecutar el siguiente comando.

node index.js

Nombre de archivo: index.js

Javascript

// Requiring module
const express = require("express");
const app = express();
  
function middleware1(req, res, next) {
  // Set data
  req.dataFromMiddleware1 = "Data of Middleware 1";
  
  // Go to next middleware
  next();
}
  
function middleware2(req, res, next) {
  console.log("We are in Middleware 2.");
  
  // Get Data of Middleware1
  console.log(req.dataFromMiddleware1);
  
  // Go to next middleware
  next();
}
  
// Handling Get Request '/'
app.get("/", middleware1, middleware2, (req, res) => {
  return res.send(req.dataFromMiddleware1);
});
  
// Server Setup
app.listen(5000, () => {
  console.log(`Server is up and running on 5000 ...`);
});

Pasos para ejecutar el programa:

Ejecute el archivo index.js con el siguiente comando:

node index.js

Producción: 

Veremos el siguiente resultado en la consola:

Server is up and running on 5000 ...

el http://localhost:5000/, verá el siguiente resultado en la pantalla:

Salida en el navegador

Ahora nuevamente verifique la salida del terminal, se verá así: 

Server is up and running on 5000 ...
We are in Middleware 2.
Data of Middleware 1

Publicación traducida automáticamente

Artículo escrito por pratikraut0000 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 *