Saltar al contenido principal

Middlewares a nivel de aplicación

En Express, los middlewares también se pueden aplicar a nivel de aplicación. Esto significa que el middleware se ejecutará para todas las solicitudes que lleguen a la aplicación, independientemente de la ruta especificada.

Para aplicar un middleware a nivel de aplicación, también se utiliza la función app.use(). Esta función acepta un middleware como argumento y lo registra para que se ejecute en cada solicitud entrante.

Un ejemplo de middleware a nivel de apliación es el middleware express.json():

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

// Middleware a nivel de aplicación
app.use(express.json());

app.get('/usuarios', (req, res) => {
// ...
});

app.post('/usuarios', (req, res) => {
// ...
});

app.listen(3000, () => {
console.log('Servidor iniciado en el puerto 3000');
});

En este ejemplo, el middleware express.json() se ha aplicado a nivel de aplicación utilizando app.use(). Esto significa que se ejecutará para todas las solicitudes entrantes, independientemente de la ruta especificada.

Además del middleware express.json(), también se pueden aplicar otros middlewares a nivel de aplicación en Express. Dos ejemplos comunes son los middlewares de logger y los middlewares de gestión de cookies y sesiones.

El middleware de logger registra información sobre cada solicitud entrante, como la URL solicitada, el método HTTP utilizado y el tiempo que tardó en procesarse la solicitud. Para utilizar el middleware de logger en Express, se puede utilizar el paquete morgan. Por ejemplo:

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

const app = express();

// Middleware de logger a nivel de aplicación
app.use(morgan('dev'));

app.get('/usuarios', (req, res) => {
// ...
});

app.post('/usuarios', (req, res) => {
// ...
});

app.listen(3000, () => {
console.log('Servidor iniciado en el puerto 3000');
});

En este ejemplo, el middleware de logger morgan('dev') se ha aplicado a nivel de aplicación utilizando app.use(). Esto significa que se registrará información sobre cada solicitud entrante.

El middleware de gestión de cookies y sesiones se utiliza para gestionar las cookies y las sesiones de los usuarios. En Express, el middleware de gestión de cookies se proporciona a través del paquete cookie-parser, mientras que el middleware de gestión de sesiones se proporciona a través del paquete express-session. Por ejemplo:

const express = require('express');
const cookieParser = require('cookie-parser');
const session = require('express-session');

const app = express();

// Middleware de gestión de cookies a nivel de aplicación
app.use(cookieParser());

// Middleware de gestión de sesiones a nivel de aplicación
app.use(session({
secret: 'mi-secreto',
resave: false,
saveUninitialized: true,
}));

app.get('/usuarios', (req, res) => {
// ...
});

app.post('/usuarios', (req, res) => {
// ...
});

app.listen(3000, () => {
console.log('Servidor iniciado en el puerto 3000');
});

En este ejemplo, el middleware de gestión de cookies cookie-parser y el middleware de gestión de sesiones express-session se han aplicado a nivel de aplicación utilizando app.use().

Así como se pueden implementar middlewares de terceros a nivel de aplicación, nosotros mismos también podemos crear nuestros propios middlewares para que se ejecuten a nivel de aplicación, como el middleware de autenticación o de validación de datos.