使用express4和mongodb时保存session不了,已经被折腾了几天了,网上找了几天了,有的是使用express3的,慕课网的教程就是express3 的,有的是使用redis存储的,nodejs论坛的源码就是,但我不想再安装一个数据库了,搞了几天了,还没解决啊,所以只能麻烦各位大神了
!!谢谢了!! app.js代码如下 models代码如下 users.js 路由users.js代码
打印req.session.user都是显示undefined,而且数据库控制台也没显示有数据插入,到底要怎么设置才能把session保存啊?? 请求各位大神了!
代码太长,还没缩进和高亮,根本没看。 不过我也不是大神,也看不出来。
其中一点,session的数据库连接可以复用的。当然这和你保存不了的问题可能没什么关系。
app.use(session({
secret: 'secret',
resave: false,
cookie: {maxAge: 15552000000},
saveUninitialized: true,
store: new MongoStore({mongooseConnection: mongoose.connection})
}));
@jinceon 我也试过了,也不行,你有完整的DEMO吗?可以发给我一个看看吗?我重新截图了
你搞明白session到底是什么,你就会自己整了,
@captainblue2013 蓝神说的对。
@captainblue2013 能给点实际的吗?大大神?
@2596887568 汇智网上的我看过了,Session只保存在内存中,没有保存到mongodb中,我什么网都看过了,慕课网和汇智网,极客学院还没有nodejs的教程,我不是一个喜欢随便就问的人,是实在没办法了,实在找不到原因了,而且是自学的,所以才提问的。
你没有把用户信息存入Session吧,你 post 方法内部逻辑有问题
router.post('/login', function(req, res, next){
//第一步:进行验证等一系列操作
..........
......
//第二步:将用户信息保存到数据库
.........
.........
//第三步:将用户信息存入session
req.session.user = user;
})
你的浏览器禁用cookie了吗?
先了解了解session机制,然后自己写个内存session,然后拓展成你熟练的数据库session,然后什么其他第三方包的session你就差不多都能解决了~ 可以先看看alsotang 的包教不包会中的session课程
session都没存,怎么能取的到呢?
大哥, session 是不需要手动操作数据库的. 直接 req.session.user = 就行了.
我用过redis的, 感觉挺好