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