【发布时间】:2018-08-04 13:57:54
【问题描述】:
我正在使用 expressjs 在 nodejs 中构建一个网站,并且我正在使用 express-sessions 来处理用户会话。这是我的代码。
在应用启动的 app.js 文件上。
app.use(express.static(path.join(__dirname, 'public')));
app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(cors());
app.use(session(config.sessionConfig));
app.use(override());
config.sessionConfig 对象在这里
sessionConfig : {
secret: 'shhSecrt',
store: new MongoStore({ url:dbUrl+dbName}),
resave: false,
saveUninitialized: true,
cookie: { secure: true }
}
问题是,当我将它部署到 heroku 时,req.session 变量似乎并没有保持其状态。 更具体地说,当用户注册时,我将例如他的用户名存储在 req.session.usernname 变量中,但是在用户执行下一个请求时,req.session.username 未定义,不是因为它没有存储在数据库中,但是因为服务器无法识别他的会话! 我不知道为什么,我已经尝试解决它 2 天,但我无法弄清楚。此外,当我在 localhost 中运行应用程序时,一切正常。 请帮忙!! 谢谢!
*如果您需要更多信息或代码示例,请告诉我。
【问题讨论】:
-
您的 Mongo 商店使用什么模块?
-
好问题,我正在使用 connect mongo。
-
我也在内存上尝试了存储会话,但它仍然不起作用!
标签: node.js heroku express-session