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
Awesome!
Completion rate improved to 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!