express 4.0, sesión rápida con un mensaje de advertencia extraño

105

Estoy tratando de trabajar configurando una aplicación nodejs usando express 4.x. Después de tropezar con los problemas de eliminación de middleware, finalmente lo hice funcionar.

sin embargo, había un par de mensajes de advertencia en la siguiente línea de código:

app.use(session({secret: '<mysecret>'})

estas advertencias fueron:

Sun, 29 Jun 2014 12:45:10 GMT express-session deprecated pass resave option; default value will change at lib\config\express.js:55:11

Sun, 29 Jun 2014 12:45:10 GMT express-session deprecated pass saveUninitialized option; default value will change at lib\config\express.js:55:11

en la documentación, los valores predeterminados para resave y saveUninitialized son verdaderos.

entonces, cambiando el código para leer

app.use(session({secret: '<mysecret>', 
                 saveUninitialized: true,
                 resave: true}));

se deshizo de las advertencias.

Entonces, para ir al grano de la pregunta:

¿Por qué debería pasar estos valores si son los valores predeterminados y por qué no tengo que pasar las otras opciones?

jmls
fuente
1
porque estos valores predeterminados cambiarán y, cuando lo hagan, puede evitar los errores que pueden causar pasándolos explícitamente al middleware
soulcheck
12
Me encanta cómo amablemente NO te dicen cuáles son las opciones predeterminadas
Brade
4
Tanto el resavecomo saveUnitializedson valores booleanos predeterminados trueen 1.7.2: github.com/expressjs/session
cfs
1
@cfs: Debería serlo saveUninitialized. Copié lo que publicaste y gasté 45 minutos tratando de averiguar por qué la advertencia no desaparecía. Más tarde me di cuenta de que había un error de ortografía. lol: D
AdityaParab
1
Perdón por el tiempo perdido Maverick :) Desafortunadamente, el comentario es demasiado antiguo para que pueda editarlo, de lo contrario, corregiría mi error tipográfico: /
cfs

Respuestas:

68

Como dicen las advertencias, los valores predeterminados cambiarán, por lo que quieren asegurarse de que al establecer los valores explícitamente ahora, no se encontrará con un comportamiento inesperado cuando los valores predeterminados cambien (en un futuro próximo).

mscdex
fuente
oh, ¿entonces los valores predeterminados para estos dos parámetros van a cambiar en algún momento? ¡Eso tiene mucho más sentido! Gracias.
jmls
3
la leyenda lo dice, todavía va a cambiar pronto :)
Qcom
2
Desde el futuro aquí. Todavía va a cambiar pronto :)
comphonia
5

No tengo suficiente representante para agregar esto como comentario. Agregué esto para mi valor predeterminado de la respuesta de Ben.

secret: process.env.SESSION_SECRET || '<mysecret>',
Caballero Dragón
fuente
2
app.use(session({
  cookieName: 'session',
  secret: 'eg[isfd-8yF9-7w2315df{}+Ijsli;;to8',
  duration: 30 * 60 * 1000,
  activeDuration: 5 * 60 * 1000,
  httpOnly: true,
  secure: true,
  ephemeral: true,
  resave: true,
  saveUninitialized: true
}));
Vijay Prajapati
fuente
Funciona para mí, tal vez la sesión solo necesitaba algunos ajustes adicionales. Gracias
martinhajny