Middleware expreso

Una pieza de middleware es una función que se conecta al proceso de enrutamiento, realizando una operación arbitraria en algún punto de la cadena (dependiendo de lo que queramos que haga).

Una pieza de middleware es una función que se conecta al proceso de enrutamiento, realizando una operación arbitraria en algún punto de la cadena (dependiendo de lo que queramos que haga).

Se usa comúnmente para editar la solicitud o los objetos de respuesta, o finalizar la solicitud antes de que llegue al código del controlador de ruta.

El middleware se agrega a la pila de ejecución de la siguiente manera:

app.use((req, res, next) => { /* */ })

Esto es similar a definir una ruta, pero además de las instancias de los objetos Solicitud y Respuesta, también tenemos una referencia a lapróximofunción de middleware, que asignamos a la variablenext.

Siempre llamamosnext()al final de nuestra función de middleware, para pasar la ejecución al siguiente controlador. Eso es a menos que queramos finalizar prematuramente la respuesta y enviársela al cliente.

Por lo general, utiliza middleware prefabricado, en forma denpmpaquetes. Se puede encontrar una gran lista de los disponibles.aquí.

Un ejemplo escookie-parser, que se utiliza para analizar las cookies en elreq.cookiesobjeto. Puedes instalarlo usandonpm install cookie-parsery lo usas así:

const express = require('express')
const app = express()
const cookieParser = require('cookie-parser')

app.get(’/’, (req, res) => res.send(‘Hello World!’))

app.use(cookieParser()) app.listen(3000, () => console.log(‘Server ready’))

También podemos configurar una función de middleware para que se ejecute solo para rutas específicas (no para todas), usándola como el segundo parámetro de la definición de ruta:

const myMiddleware = (req, res, next) => {
  /* ... */
  next()
}

app.get(’/’, myMiddleware, (req, res) => res.send(‘Hello World!’))

Si necesita almacenar datos que se generan en un middleware para pasarlos a funciones de middleware posteriores, o al controlador de solicitudes, puede usar elRequest.localsobjeto. Adjuntará esos datos a la solicitud actual:

req.locals.name = 'Flavio'

Descarga mi gratisManual de Express.js


Más tutoriales rápidos: