我的节点js文件中有以下内容
var express = require('express');
var util = require('./lib/utility');
var partials = require('express-partials');
var bodyParser = require('body-parser');
var session = require('express-session');
/* abstracted some code */
app.use(session({
genid: function(req) {
return genuuid(); // use UUIDs for session IDs
},
secret: 'keyboard cat'
}));
当我启动服务器时,我得到了
express-session deprecated undefined resave option; provide resave option server.js
express-session deprecated undefined saveUninitialized option; provide saveUninitialized option server.js
我很难搞清楚什么是弃用的?我复制了https://github.com/expressjs/session
中的示例当我尝试加载页面时,我得到了:
ReferenceError:app.use.session.genid
中未定义genuuid
答案 0 :(得分:13)
您必须在某处定义genuuid
功能。 express-session
自述文件假设您已经实现了这一点。
关于警告,您需要在会话配置对象中明确设置resave
和saveUninitialized
选项。
答案 1 :(得分:5)
使用此功能,希望对您有所帮助
app.use(session({
name : 'codeil',
secret : 'something',
resave :false,
saveUninitialized: true,
cookie : {
maxAge:(1000 * 60 * 100)
}
}));
答案 2 :(得分:3)
来自express 4.0 , express-session with odd warning message
正如警告所说,默认值会发生变化,因此他们希望确保通过现在明确设置值,当默认值发生变化时(在不久的将来),您将不会遇到意外行为。
app.use(session({
secret: cookie_secret,
resave: true,
saveUninitialized: true
}));
答案 3 :(得分:2)
添加这些标志 -
resave:是的, saveUninitialized:true
在你的app.use(session({})中; 它应该工作正常。
答案 4 :(得分:2)
app.use(session({ secret: 'anything', resave: true, saveUninitialized: true }));/
答案 5 :(得分:0)
如果您将app.use(session({
secret: '<session_secret>',
resave: true,
saveUninitialized: true,
maxAge: 3600000 // 1 hour (in milliseconds)
}));
用于会话cookie持续时间:
var response = await _userManager.FindByNameAsync(userName);
答案 6 :(得分:0)
您必须使用新版本的 express ,并在应用中的某个位置定义Genid函数,或使用 uuid 打包
答案 7 :(得分:0)
添加
{
resave: true,
saveUninitialized: true
}
到您的会话中间件
答案 8 :(得分:0)
这是一个弃用警告。表示不支持节点模块express session。