【发布时间】:2017-03-20 07:23:03
【问题描述】:
尝试使用 Redis 设置会话。我的 Redis DB 在一个 dokku 容器中,链接到我的应用程序(也在一个 dokku 容器中)。我不断收到未定义的会话。我已经将事情剥离到最低限度,还检查了事情的运行顺序。我仍然得到一个未定义的。
我在这里读过'session' is undefined when using express / redis for session store 和Express js session undefined 无济于事。
我不需要使用 cookie-parser,因为 expression-session 中包含 cookie 内容,并且文档说 cookie-parser 可能会导致 expression-session 出现问题。
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');
});
【问题讨论】:
-
错误的行号和确切的错误信息
-
@JasonLivesay 它的 console.logs 未定义。会话未定义。谢谢
-
app.get('/', function(req, res, next) { console.log(req.session); // 记录未定义 res.send('Hello'); });
标签: node.js session express cookies redis