TUTORIALES

Node.js nivel intermedio: Middleware en Express.js

 En Express.js, el middleware es una función que tiene acceso al objeto de solicitud (req), al objeto de respuesta (res) y a la siguiente función de middleware en el ciclo de solicitud/respuesta de la aplicación. Los middleware se utilizan para ejecutar código en el medio de la solicitud, antes de que llegue a su destino final.

Puedes utilizar middleware para una variedad de propósitos, como la autenticación, la gestión de errores, el registro de solicitudes, la compresión de respuesta, entre otros. Aquí te muestro cómo puedes utilizar middleware en Express.js:

Middleware de Aplicación:

El middleware de aplicación se aplica a todas las rutas en tu aplicación Express. Puedes usar la función app.use() para aplicar middleware de aplicación.

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

// Middleware de aplicación para registrar solicitudes
app.use((req, res, next) => {
  console.log(`Solicitud recibida: ${req.method} ${req.url}`);
  next();
});

// Ruta de inicio
app.get('/', (req, res) => {
  res.send('¡Hola, mundo!');
});

// Middleware de aplicación para manejar errores
app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).send('Algo salió mal');
});

// Iniciar el servidor
const puerto = 3000;
app.listen(puerto, () => {
  console.log(`Servidor Express iniciado en el puerto ${puerto}`);
});

Middleware de Ruta:

El middleware de ruta se aplica a una ruta específica en tu aplicación Express. Puedes utilizar funciones middleware como argumentos de ruta.

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

// Middleware de ruta para verificar la autenticación
function verificarAutenticacion(req, res, next) {
  if (req.isAuthenticated()) {
    next();
  } else {
    res.status(401).send('No autenticado');
  }
}

// Ruta protegida que requiere autenticación
app.get('/ruta-protegida', verificarAutenticacion, (req, res) => {
  res.send('Ruta protegida');
});

// Iniciar el servidor
const puerto = 3000;
app.listen(puerto, () => {
  console.log(`Servidor Express iniciado en el puerto ${puerto}`);
});

Middleware de Terceros:

También puedes utilizar middleware de terceros proporcionados por la comunidad de Express.js o crear tu propio middleware personalizado para adaptarse a tus necesidades específicas.

const express = require('express');
const app = express();
const bodyParser = require('body-parser');

// Middleware de terceros para analizar el cuerpo de las solicitudes
app.use(bodyParser.json());

// Middleware personalizado para registrar la hora de llegada de la solicitud
function logHoraDeLlegada(req, res, next) {
  console.log(`Hora de llegada: ${new Date()}`);
  next();
}

// Ruta que utiliza el middleware personalizado
app.get('/', logHoraDeLlegada, (req, res) => {
  res.send('¡Hola, mundo!');
});

// Iniciar el servidor
const puerto = 3000;
app.listen(puerto, () => {
  console.log(`Servidor Express iniciado en el puerto ${puerto}`);
});

Estos son solo algunos ejemplos de cómo puedes utilizar middleware en Express.js para diferentes propósitos. Los middleware te permiten modularizar tu código y agregar funcionalidades a tu aplicación de manera flexible y fácilmente mantenible.



0 Comments:

Publicar un comentario