【问题标题】:What should I do to store data to session with connect-redis我应该怎么做才能使用 connect-redis 将数据存储到会话中
【发布时间】:2012-02-03 23:47:33
【问题描述】:

我想将帐户的username 存储到会话中。我通过 expressjs 框架使用 node.js,并尝试使用connect-redis 来存储会话,如expressjs 的教程。
请教我如何存储和获取变量数据

【问题讨论】:

  • 那么问题到底出在哪里?
  • 我不知道如何保存和获取与connect-redis的会话数据
  • req.session.my_var = 1 设置变量,req.session 访问会话变量。
  • 当我使用 User.authenticate(req.body.login, req.body.password,function(err, docs){ if(docs.length == 0) { res.redirect('back'); } else { if(docs[0].role == 'admin'){ res.redirect('/admin'); } else { res.redirect('/'); } req.sessions.user = docs[0]; } }); 然后收到此错误 Cannot set property 'user' of undefined
  • 这是req.session 而不是req.sessions(删除最后一个s)。

标签: javascript session node.js express


【解决方案1】:

你的看起来大部分是正确的,只是不完整。我假设您还运行了 redis,并且包含了更高的连接。这是一个稍微完整的版本:http://jsfiddle.net/F2WQQ/1/

【讨论】:

【解决方案2】:

使用 redis-connect 配置 expressSession 后,立即添加以下函数:

expressApp.use(function(req, res, next) {

    if(req.session.user){
        console.log("Session variable already set: " + req.session.user);            
    }
    else{
        req.session.user = 'username';
        console.log("Session variable not set");
        console.log("Setting Session variable now: " + req.session.user);
    }
})

现在您可以在 nodejs 应用程序的任何位置使用此会话变量。

【讨论】:

    猜你喜欢
    • 2012-01-05
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 2020-05-31
    • 1970-01-01
    相关资源
    最近更新 更多