使用express4和mongodb时保存session不了,已经被折腾了几天了,网上找了几天了,有的是使用express3的,慕课网的教程就是express3 的,有的是使用redis存储的,nodejs论坛的源码就是,但我不想再安装一个数据库了,搞了几天了,还没解决啊,所以只能麻烦各位大神了
!!谢谢了!! app.js代码如下 models代码如下 users.js 路由users.js代码
打印req.session.user都是显示undefined,而且数据库控制台也没显示有数据插入,到底要怎么设置才能把session保存啊?? 请求各位大神了!
15 回复
代码太长,还没缩进和高亮,根本没看。 不过我也不是大神,也看不出来。
其中一点,session的数据库连接可以复用的。当然这和你保存不了的问题可能没什么关系。
app.use(session({
secret: 'secret',
resave: false,
cookie: {maxAge: 15552000000},
saveUninitialized: true,
store: new MongoStore({mongooseConnection: mongoose.connection})
}));
@2596887568 汇智网上的我看过了,Session只保存在内存中,没有保存到mongodb中,我什么网都看过了,慕课网和汇智网,极客学院还没有nodejs的教程,我不是一个喜欢随便就问的人,是实在没办法了,实在找不到原因了,而且是自学的,所以才提问的。
你没有把用户信息存入Session吧,你 post 方法内部逻辑有问题
router.post('/login', function(req, res, next){
//第一步:进行验证等一系列操作
..........
......
//第二步:将用户信息保存到数据库
.........
.........
//第三步:将用户信息存入session
req.session.user = user;
})