当用户登录时,我像这样在 session 中存储数据:
req.session.user = userData;
它工作正常,但是当我在 nodejs 中重新启动时, session 为空。然后用户需要重新登录。
我想为 session 创建一个基于文件的存储。但经过大量搜索,我找到了将数据存储在数据库中的方法,但我不想将 session 数据存储在数据库中。我想将数据存储在文件中。
是否有一个 nodejs 模块将 session 数据存储在文件中?
最佳答案
您可以使用session-file-store
。可以引用下面的工作示例。
var express = require('express');
var app = express();
var session = require('express-session');
var FileStore = require('session-file-store')(session);
app.use(session({ secret: 'keyboard cat',
resave: false,
saveUninitialized: false,
store: new FileStore,
cookie: { maxAge: 3600000,secure: false, httpOnly: true }
})
);
app.get('/', function (req, res) {
if (req.session.views) {
req.session.views++;
res.setHeader('Content-Type', 'text/html');
res.write('<p>views: ' + req.session.views + '</p>');
res.end();
} else {
req.session.views = 1;
res.end('Welcome to the file session demo. Refresh page!');
}
});
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
关于node.js - 如何在 expressjs 中将 session 数据存储在文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22812928/