【问题标题】:error when use session with expressjs and redis将会话与 expressjs 和 redis 一起使用时出错
【发布时间】:2012-02-05 15:39:01
【问题描述】:

我尝试使用 redis 的 express 会话。
但是我不知道为什么会出现这个错误

Cannot set property 'user' of undefined

here is link code

【问题讨论】:

标签: session node.js redis express


【解决方案1】:

app.use(app.router); 应该在 cookieParser 和会话中间件之后。否则,您将无法访问路由内的会话。

下次在您的问题中添加堆栈跟踪将帮助其他人更快地帮助您。

通常,了解每个中间件的作用有助于防止此类错误。

【讨论】:

    【解决方案2】:

    尝试关注。

    var express = require('express');
    var redis   = require("redis");
    var session = require('express-session');
    var redisStore = require('connect-redis')(session);
    var bodyParser = require('body-parser');
    var client  = redis.createClient();
    var app = express();
    
    app.set('views', __dirname + '/views');
    app.engine('html', require('ejs').renderFile);
    
    app.use(session({
        secret: 'ssshhhhh',
        // create new redis store.
        store: new redisStore({ host: 'localhost', port: 6379, client: client,ttl :  260}),
        saveUninitialized: false,
        resave: false
    }));
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({extended: true}));
    
    app.get('/',function(req,res){  
        // create new session object.
        if(req.session.key) {
            // if email key is sent redirect.
            res.redirect('/admin');
        } else {
            // else go to home page.
            res.render('index.html');
        }
    });
    
    app.post('/login',function(req,res){
        // when user login set the key to redis.
        req.session.key=req.body.email;
        res.end('done');
    });
    
    app.get('/logout',function(req,res){
        req.session.destroy(function(err){
            if(err){
                console.log(err);
            } else {
                res.redirect('/');
            }
        });
    });
    
    app.listen(3000,function(){
        console.log("App Started on PORT 3000");
    });
    

    链接:https://codeforgeek.com/2015/07/using-redis-to-handle-session-in-node-js/

    【讨论】:

      猜你喜欢
      • 2016-06-08
      • 1970-01-01
      • 1970-01-01
      • 2017-05-20
      • 2014-08-24
      • 1970-01-01
      • 2011-07-20
      • 2012-10-15
      • 1970-01-01
      相关资源
      最近更新 更多