尝试使用Redis设置会话 . 我将我的Redis数据库放在一个dokku容器中,链接到我的应用程序(也在dokku容器中) . 我一直没有定义会话 . 我已经把事情剥离到最低限度,还检查了运行顺序 . 我仍然得到一个未定义的 .
我在这里读到'session' is undefined when using express / redis for session store和Express js session undefined无济于事 .
我不应该使用cookie-parser,因为表达式会话中包含cookie,而文档说cookie-parser会导致表达式会话出现问题 .
var express = require('express');
var session = require('express-session');
var redisStore = require('connect-redis')(session);
var bodyParser = require('body-parser');
var app = express();
app.set('port', (process.env.PORT || 5000));
var redisURL = 'redis://xxxxx:1234567@bar-redis-foo:6379';
var store = new redisStore({ url: redisURL });
app.use(session({
secret: 'ssshhhhh',
store: store,
saveUninitialized: true,
resave: true
}));
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.json()); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
extended: true
}));
app.get('/', function(req, res, next) {
console.log(req.session); // Logs Undefined
res.send('Hello');
});
1 回答
检查您的redis连接并再次运行 . 示例代码如下 .