表示4.0,用奇怪的警告信息表示会话

我正在尝试使用express 4.x来设置nodejs应用程序。 在经历了中间件移除问题之后,我终于find了工作。

但是,在下面这行代码中有几条警告消息:

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

这些警告是:

 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 

在文档中,resave和saveUninitialized的默认值是true。

所以,改变代码来阅读

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

摆脱了警告。

那么,为了解决这个问题:

为什么我必须将这些值传入,如果他们是默认值,为什么我不必通过其他选项?

正如警告所说,默认值将会改变,所以他们希望确保通过明确地设置值,当默认值改变(不久的将来)时,不会遇到意外的行为。

我发现问题很有用:

https://github.com/expressjs/session/issues/56

 app.use(session({ secret: cookie_secret, resave: true, saveUninitialized: true })); 

我没有足够的代表添加这个评论。 我添加了这个为我的默认值的答案。

 secret: process.env.SESSION_SECRET || '<mysecret>', 
 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 }));