【发布时间】:2016-07-16 14:20:59
【问题描述】:
我使用 express-session 设置会话管理的方式如下:
var express = require('express');
var session = require('express-session');
var app = express();
var mongoose = require('mongoose');
var MongoStore = require('connect-mongo')(session);
mongoose.connect('mongodb://localhost/sessionTest');
app.listen(3000, function () {
});
app.use(session({
secret: 'justsomestuff',
resave: false,
saveUninitialized: false,
cookie: { } ,
store: new MongoStore({mongooseConnection: mongoose.connection})
}));
app.get('/first', function (req, res) {
console.log('first');
req.session.test = 'Tester';
req.session.save();
console.log(req.sessionID);
res.send(req.sessionID);
});
app.get('/second', function (req, res) {
console.log('second');
if (req.session)
console.log('session exists');
console.log(req.sessionID);
console.log(req.session.test);
res.send(req.sessionID);
});
但是每次我调用 /first 或 /second 时都会使用新会话 id 建立一个新会话
curl 127.0.0.1:3000/first
curl 127.0.0.1:3000/second
我用
"connect-mongo": "^1.2.1",
"express": "~4.13.4",
"express-session": "^1.14.0",
所有会话也都在 mongo 数据库中。
这似乎是一个直截了当的问题,但我根本无法弄清楚。
【问题讨论】:
-
看起来您实际上并没有在您的
curl调用中发回会话 cookie。
标签: session express express-session