Editar en GitHub

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:

  • key nombre de la cookie, por defecto connect.sess
  • secret previene la manipulación de cookies
  • cookie configuración de la cookie de sesión, por defecto { path: '/', httpOnly: true, maxAge: null }
  • proxy confí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:

  • hidden muestra archivos ocultos (dot). Por defecto false.
  • icons muestra iconos. Por defecto false.
  • filter Aplica esta función de filtro a los archivos. Por defecto false.