2015-05-02 19 views
1
app.engine('html', ejs.renderFile) 
    .set("views", __dirname + '/views') 
    .use("/public", express.static(__dirname + '/public')); 

/*********************************************************************/ 
app.use(cookieParser()); 

app.use(session({ 
    store: new RedisStore({ 
     host: "127.0.0.1", 
     port: "3636" 
    }), 
    secret: 'keyboard cat', 
    resave: false, 
    saveUninitialized: true 
})); 

app.use(function(req, res, next) { 
    var userSession = req.session.userSession; 

    if (!userSession) { 
     userSession = req.session.userSession = ''; 
    } 
    next(); 

}); 

/************************************************************************/ 
server.listen(8080); 

app.get('/', function(req, res) { 
    res.render('index2.html', { 
     infoUser: req.session.userSession 
    }); 
}) 

    .use(function(req, res, next) { 
     res.redirect('/'); 
    }); 

控制檯顯示我:誤差與快遞和存儲選項連接,Redis的

TypeError: Cannot read property 'userSession' of undefined.

我敢肯定,這個錯誤是由「RedisStore」對象引起的,但我不知道爲什麼,我不要不知道如何修復?

我有什麼錯誤嗎?

請幫我!!!

回答

0

問題出在您的RedisStore配置中。端口設置應該是一個數字,像這樣:

app.use(session({ 
    store: new RedisStore({ 
     host: "localhost", 
     port: 3636 
    }), 
    secret: 'keyboard cat', 
    resave: false, 
    saveUninitialized: true 
})); 

如果不解決這個問題,你也應該確保3636是正確的端口。 Redis默認使用6379。

+0

感謝您的回答,我更改了端口號,但它沒有解決我的問題,我的控制檯顯示了同樣的問題。 ** TypeError:無法讀取未定義的屬性'userSession'。** –