¿Cómo crear un middleware?
Los middleware personalizados son sencillos de crear debido que en realidad solo son una función.
Mediante una variable de referencia.
const miMiddleware = (req, res, next) => {
...
next();
}
app.use(miMiddleware);
Directamente.
app.use((req, res, next) => {
...
next();
});
La primera opción es mejor, ya que permite modularizar y desacoplar el uso del middleware.
¿Cómo pasar parámetros desde un middleware a una petición?
El objeto request
es siempre el mismo a través de todo el ciclo de vida de una petición. Esto permite utilizar un patrón muy útil en el cual los desarrolladores pueden pasar datos desde un middleware a otro y a un request handler.
Por ejemplo, los desarrolladores pueden conectar a una base de datos en un middleware, y esta referencia se mantendrá disponible en los middleware subsecuentes y manejadores de rutas.
app.use((req, res, next()) => {
database.connect('dsn', (err, db) => {
...
req.db = db;
next();
});
});
app.use((req, res, next()) => {
req.db.collection('usuarios').find({ active: true }, (err, app) => {
next();
}).
});