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?


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).


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>',

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
}));

Funciona para mí, tal vez la sesión solo necesitaba algunos ajustes adicionales. Gracias
martinhajny
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.