Middleware
Express 3.x incluye una serie de funciones de middleware integradas que pueden usarse para manejar tareas comunes como analizar cuerpos de solicitudes, manejar cookies, y más. Estas funciones de middleware están disponibles como propiedades del módulo Express y pueden agregarse a tu aplicación usando app.use().
basicAuth()
middleware de autenticación básica, que popula req.user
con el nombre de usuario.
Usuario y contraseña simple:
app.use(express.basicAuth('username', 'password'));Verificación de callback:
app.use( express.basicAuth(function (user, pass) { return user === 'tj' && pass === 'wahoo'; }));Verificación de callback asíncrono, aceptando fn(err, user),
en este caso req.user será el objeto usuario pasado.
app.use( express.basicAuth(function (user, pass, fn) { User.authenticate({ user: user, pass: pass }, fn); }));bodyParser()
middleware de análisis de cuerpo de solicitud que soporta JSON, urlencoded,
y solicitudes multipart. Este middleware es simplemente un wrapper
para los middleware json(), urlencoded(), y
multipart().
app.use(express.bodyParser());
// is equivalent to:app.use(express.json());app.use(express.urlencoded());app.use(express.multipart());Por seguridad, es mejor deshabilitar la subida de archivos si tu aplicación
no la necesita. Para hacer esto, usa solo el middleware necesario, es decir, no uses
el middleware bodyParser y multipart():
app.use(express.json());app.use(express.urlencoded());Si tu aplicación necesita subida de archivos deberías configurar
una estrategia para manejar esos archivos
.
compress()
Comprime los datos de respuesta con gzip / deflate. Este middleware debería colocarse "alto" en la pila para asegurar que todas las respuestas puedan comprimirse.
app.use(express.logger());app.use(express.compress());app.use(express.methodOverride());app.use(express.bodyParser());cookieParser()
Analiza el campo de encabezado Cookie y popula req.cookies
con un objeto indexado por los nombres de las cookies. Opcionalmente puedes habilitar
el soporte de cookies firmadas pasando una cadena secret.
app.use(express.cookieParser());app.use(express.cookieParser('some secret'));cookieSession()
Proporciona sesiones basadas en cookies, y popula req.session.
Este middleware toma las siguientes opciones:
keynombre de la cookie, por defectoconnect.sesssecretpreviene la manipulación de cookiescookieconfiguración de la cookie de sesión, por defecto{ path: '/', httpOnly: true, maxAge: null }proxyconfía en el proxy inverso al configurar cookies seguras (vía "x-forwarded-proto")
app.use(express.cookieSession());Para limpiar una cookie simplemente asigna la sesión a null antes de responder:
req.session = null;csrf()
middleware de protección CSRF.
Por defecto este middleware genera un token llamado "_csrf"
que debería agregarse a las solicitudes que mutan
el estado, dentro de un campo de formulario oculto, query-string, etc. Este
token se valida contra req.csrfToken().
La función value por defecto verifica req.body generado
por el middleware bodyParser(), req.query generado
por query(), y el campo de encabezado "X-CSRF-Token".
Este middleware requiere soporte de sesiones, por lo tanto debería agregarse
en algún lugar debajo de session().
directory()
middleware de servidor de directorios, sirve la path dada.
Este middleware puede emparejarse con static() para servir
archivos, proporcionando un navegador de archivos con todas las funciones.
app.use(express.directory('public'));app.use(express.static('public'));Este middleware acepta las siguientes opciones:
hiddenmuestra archivos ocultos (dot). Por defecto false.iconsmuestra iconos. Por defecto false.filterAplica esta función de filtro a los archivos. Por defecto false.