我正在使用以下Node.js代码创建“会话存储”以保留用户信息。这些文本文件保存在名为“ session-store”的文件夹中:
var session = require('express-session');
var FileStore = require('session-file-store')(session);
app.use(session({
store: new FileStore({path: './session-store'}),
// using FileStore with express-session
// as the store method, replacing the default memory store
secret: 'secret_key',
name: 'myadmin',
resave: false,
saveUninitialized: false,
cookie: { maxAge: 60000, httpOnly: true, secure: false }
}));
app.get('/', function (req, res) {
if (req.session.views) {
req.session.views++;
} else {
req.session.views = 1;
}
});
我包含会话信息的文本文件似乎正确生成。但是我对它的正确用法有些困惑。在我的cookie(.txt)文件中,它正确报告了“视图”,例如““视图”:1“。但是,如果定义另一个变量,例如“ req.session.broadcast = String(req.body.usr);”我在文本文件中看不到此信息...为什么不包含此信息?这是因为包含cookie会话存储信息的.txt文件仅在初始“路由”上生成(即“ app.get('/',函数(req,res){...做东西}”)),并且Node.js代码中没有其他地方吗?(注意:我将“ req.session.broadcast”设置为不同于“首页”路由的其他路由...我想这是Cookie文件生成的时间...可能吗?)。
我只是在尝试正确地管理用户...因此,我希望能够为每个唯一的用户浏览器正确设置和跟踪某些会话变量。
“ req.session.user”和/或req.session变量是否为“硬编码”变量?我相信在将浏览器定向到网页时会设置它们,但是如何将其用于终止会话?如果用户关闭了浏览器(使用右上角的“ x”),或者如果用户将其浏览器定向到另一个网页,它们是否会自动变为空??
在这些问题上的任何帮助以及任何其他建议,将不胜感激。