Creación de Middleware Personalizado
En Express.js, es posible crear funciones de middleware personalizadas utilizando el método app.use(). Estas funciones reciben tres parámetros: req (el objeto de solicitud), res (el objeto de respuesta) y next (una función para transferir el control al siguiente middleware en la cadena). El middleware personalizado puede aplicarse globalmente a todas las rutas o a rutas específicas, especificando una ruta concreta.
Creación de Middleware Personalizado
A continuación, se muestra un ejemplo básico de una función de middleware personalizada que registra la marca de tiempo y la URL de cada solicitud entrante:
app.use((req, res, next) => {
const timestamp = new Date().toISOString();
const url = req.url;
console.log(`[${timestamp}] ${url}`);
next(); // Pass control to the next middleware.
});
En este ejemplo, el middleware personalizado registra la marca de tiempo y la URL de cada solicitud entrante en la consola. Se llama a la función next() para transferir el control al siguiente middleware en la cadena.
Ejemplo Práctico: Combinando Middleware Integrado y Personalizado
A continuación, se presenta un ejemplo práctico donde se utiliza un middleware integrado de Express para analizar datos JSON y luego se crea un middleware personalizado para validar esos datos antes de continuar:
const express = require('express');
const app = express();
// Use built-in middleware to parse JSON data.
app.use(express.json());
// Custom middleware to validate JSON data.
app.use((req, res, next) => {
const jsonData = req.body;
if (!jsonData || Object.keys(jsonData).length === 0) {
// If the JSON data is missing or empty, send an error response.
return res.status(400).json({ error: 'Invalid JSON data' });
}
// Data is valid; proceed to the next middleware or route.
next();
});
// Route that expects valid JSON data.
app.post('/api/data', (req, res) => {
const jsonData = req.body;
res.status(200).json({ message: 'Data received', data: jsonData });
});
app.listen(3000, () => {
console.log('Server is running on port 3000.');
});
En este ejemplo:
- Se utiliza el middleware integrado
express.json()para analizar los datos JSON entrantes; - Se crea un middleware personalizado que verifica si los datos JSON analizados faltan o están vacíos. Si es así, envía una respuesta 400 Bad Request con un mensaje de error. Si los datos son válidos, llama a
next()para continuar con la ruta; - La ruta
/api/dataespera datos JSON válidos. Si el middleware personalizado valida los datos, el controlador de la ruta los recibe y envía una respuesta de éxito.
Este ejemplo demuestra cómo se pueden utilizar tanto middleware integrados como personalizados para validar los datos antes de que lleguen a los controladores de rutas, asegurando que los datos estén en el formato esperado antes de procesarlos.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Genial!
Completion tasa mejorada a 2.56
Creación de Middleware Personalizado
Desliza para mostrar el menú
En Express.js, es posible crear funciones de middleware personalizadas utilizando el método app.use(). Estas funciones reciben tres parámetros: req (el objeto de solicitud), res (el objeto de respuesta) y next (una función para transferir el control al siguiente middleware en la cadena). El middleware personalizado puede aplicarse globalmente a todas las rutas o a rutas específicas, especificando una ruta concreta.
Creación de Middleware Personalizado
A continuación, se muestra un ejemplo básico de una función de middleware personalizada que registra la marca de tiempo y la URL de cada solicitud entrante:
app.use((req, res, next) => {
const timestamp = new Date().toISOString();
const url = req.url;
console.log(`[${timestamp}] ${url}`);
next(); // Pass control to the next middleware.
});
En este ejemplo, el middleware personalizado registra la marca de tiempo y la URL de cada solicitud entrante en la consola. Se llama a la función next() para transferir el control al siguiente middleware en la cadena.
Ejemplo Práctico: Combinando Middleware Integrado y Personalizado
A continuación, se presenta un ejemplo práctico donde se utiliza un middleware integrado de Express para analizar datos JSON y luego se crea un middleware personalizado para validar esos datos antes de continuar:
const express = require('express');
const app = express();
// Use built-in middleware to parse JSON data.
app.use(express.json());
// Custom middleware to validate JSON data.
app.use((req, res, next) => {
const jsonData = req.body;
if (!jsonData || Object.keys(jsonData).length === 0) {
// If the JSON data is missing or empty, send an error response.
return res.status(400).json({ error: 'Invalid JSON data' });
}
// Data is valid; proceed to the next middleware or route.
next();
});
// Route that expects valid JSON data.
app.post('/api/data', (req, res) => {
const jsonData = req.body;
res.status(200).json({ message: 'Data received', data: jsonData });
});
app.listen(3000, () => {
console.log('Server is running on port 3000.');
});
En este ejemplo:
- Se utiliza el middleware integrado
express.json()para analizar los datos JSON entrantes; - Se crea un middleware personalizado que verifica si los datos JSON analizados faltan o están vacíos. Si es así, envía una respuesta 400 Bad Request con un mensaje de error. Si los datos son válidos, llama a
next()para continuar con la ruta; - La ruta
/api/dataespera datos JSON válidos. Si el middleware personalizado valida los datos, el controlador de la ruta los recibe y envía una respuesta de éxito.
Este ejemplo demuestra cómo se pueden utilizar tanto middleware integrados como personalizados para validar los datos antes de que lleguen a los controladores de rutas, asegurando que los datos estén en el formato esperado antes de procesarlos.
¡Gracias por tus comentarios!