Express 4.0,带有奇怪警告消息的 Express 会话

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

不过,在以下代码行中有几条警告信息:

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 和 saveUninitialization 的默认值为 true。

所以,把代码改成

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

摆脱了警告。

所以,为了回到问题的重点:

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

38097 次浏览

As the warnings say, the default values will change so they want to ensure that by setting the values explicitly now, you won't run into unexpected behavior when the defaults do change (in the near future).

I found issue useful:

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

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

I don't have enough rep to add this as comment. I added this for my default value of Ben's answer.

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