Node.js express 4.0,包含奇数警告消息的express会话
我正在尝试使用Express4.x设置一个nodejs应用程序。在经历了中间件删除问题之后,我终于让它工作了 但是,在以下代码行中有几条警告消息:Node.js express 4.0,包含奇数警告消息的express会话,node.js,express,Node.js,Express,我正在尝试使用Express4.x设置一个nodejs应用程序。在经历了中间件删除问题之后,我终于让它工作了 但是,在以下代码行中有几条警告消息: app.use(session({secret: '<mysecret>'}) 在文档中,resave和saveUninitialized的默认值为true 因此,将代码更改为 app.use(session({secret: '<mysecret>', saveUninitialized
app.use(session({secret: '<mysecret>'})
在文档中,resave和saveUninitialized的默认值为true
因此,将代码更改为
app.use(session({secret: '<mysecret>',
saveUninitialized: true,
resave: true}));
app.use(会话({secret:''),
saveUninitialized:true,
resave:true});
摆脱了警告
因此,为了抓住问题的关键:
如果这些值是默认值,为什么我必须传入这些值,为什么我不必传入其他选项?正如警告所说,默认值将更改,因此它们希望通过现在显式设置值,确保在默认值更改时(在不久的将来),您不会遇到意外行为.我发现这个问题很有用:
我没有足够的代表将此添加为评论。我添加了这个作为Ben答案的默认值
secret: process.env.SESSION_SECRET || '<mysecret>',
secret:process.env.SESSION|u secret |“,
,因为这些默认值会发生变化,当它们发生变化时,您可以通过显式地将它们传递给中间件来避免可能导致的错误。我很高兴它们不会告诉您默认选项是什么。resave
和saveUnitialized
都是布尔值,在1.7.2:@cfs:应该是saveUninitialized
。我抄了你贴的东西,浪费了45分钟试图找出警告不会消失的原因。后来我意识到有个拼写错误。lol:d对浪费的时间表示担忧Maverick:)不幸的是,评论太旧了,我无法编辑,否则我会修正我的打字错误:/哦,那么这两个参数的默认值将来会改变吗?那就更有意义了!谢谢。传说中有,很快就会改变:)从未来开始。还是会很快改变:)谢谢你以代码的形式回答这个问题。。。在这附近看得还不够好。另外,我建议大家看看这些文档。在我的情况下,最好将它们设置为false
(,)。对我来说,可能会话只需要一些额外的设置。谢谢
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
}));