CNode

已经被session保存搞了好多天了,请求大神指点一下(已经重新截图了,求求你们了,实在没办法了)

问答
Ttanzijie11发布于11 年前最后回复11 年前15 回复6922 浏览0 收藏

使用express4和mongodb时保存session不了,已经被折腾了几天了,网上找了几天了,有的是使用express3的,慕课网的教程就是express3 的,有的是使用redis存储的,nodejs论坛的源码就是,但我不想再安装一个数据库了,搞了几天了,还没解决啊,所以只能麻烦各位大神了

!!谢谢了!! app.js代码如下 00.png 0.1.png 0.2.png models代码如下 users.js 4.png 路由users.js代码 5.png

打印req.session.user都是显示undefined,而且数据库控制台也没显示有数据插入,到底要怎么设置才能把session保存啊?? 请求各位大神了!

查看回复

回复 (15)

J
jinceon#1·11 年前

代码太长,还没缩进和高亮,根本没看。 不过我也不是大神,也看不出来。

其中一点,session的数据库连接可以复用的。当然这和你保存不了的问题可能没什么关系。

app.use(session({
    secret: 'secret',
    resave: false,
    cookie: {maxAge: 15552000000},
    saveUninitialized: true,
    store: new MongoStore({mongooseConnection: mongoose.connection})
}));
C
captainblue2013#3·11 年前

你搞明白session到底是什么,你就会自己整了,

2
2596887568#5·11 年前

看看 汇智网上的 express课程 上面讲解的4.x版本的

T
tanzijie11#6·11 年前
引用 captainblue2013你搞明白session到底是什么,你就会自己整了,

@captainblue2013 能给点实际的吗?大大神?

T
tanzijie11#7·11 年前
引用 2596887568看看 汇智网上的 express课程 上面讲解的4.x版本的

@2596887568 汇智网上的我看过了,Session只保存在内存中,没有保存到mongodb中,我什么网都看过了,慕课网和汇智网,极客学院还没有nodejs的教程,我不是一个喜欢随便就问的人,是实在没办法了,实在找不到原因了,而且是自学的,所以才提问的。

J
jyootai#9·11 年前

你没有把用户信息存入Session吧,你 post 方法内部逻辑有问题

router.post('/login', function(req, res, next){
   //第一步:进行验证等一系列操作
   ..........
   ......
   //第二步:将用户信息保存到数据库
   .........
   .........
   //第三步:将用户信息存入session
   req.session.user = user;     
})
C
chloe#10·11 年前

你的浏览器禁用cookie了吗?

D
dayuoba#11·11 年前

先了解了解session机制,然后自己写个内存session,然后拓展成你熟练的数据库session,然后什么其他第三方包的session你就差不多都能解决了~ 可以先看看alsotang 的包教不包会中的session课程

H
hezedu#13·11 年前

大哥, session 是不需要手动操作数据库的. 直接 req.session.user = 就行了.

C
cylzh#14·11 年前
引用 jyootai你没有把用户信息存入Session吧,你 post 方法内部逻辑有问题

@jyootai 人家post里面不是设置了的吗 req.session.user = user.name;

W
wengqianshan#15·11 年前

我用过redis的, 感觉挺好

参与回复
登录后即可参与回复。登录