2012-12-22 47 views
0

可能重複:
‘session’ is undefined when using express/redis for session storereq.session不確定與快遞和連接,Redis的

var express = require('express'); 
var app = express(); 
var RedisStore = require('connect-redis')(express); 
var session = require('redis-session')({ 

    debug: true, 
    ttl: 90000000, 
    connection: {port: '7170', host: '127.0.0.1'}  

}); 

app.configure(function(){ 

    app.use(express.bodyParser()); 
    app.set('views',__dirname + '/views'); 
    app.set('view engine', 'ejs'); 
    app.use(express.static(__dirname + '/public')); 
    app.use(express.session({ secret: 'p!550ff', store: new RedisStore })); 
    app.use(express.cookieParser()); 
    app.use(app.router); 

}); 

利用這種配置,任何時候我打電話req.session,nodemon告訴我,這是不確定的。我猜,express.cookieParser()express.session已被很好地聲明。任何解決方案...?

+1

男人,這個網站上的納粹標記爲重複的東西或「不符合網站的感覺」需要可能確保他們知道他們在說什麼。此問題不是重複的,因爲它使用Redis存儲進行會話並且存在完全不同的問題。很遺憾。 – electrichead

回答

3

cookieParser中間件需要拿出以前session中間件所以交換這樣的順序:

app.use(express.cookieParser()); 
    app.use(express.session({ secret: 'p!550ff', store: new RedisStore })); 

見本here的連接文檔。

+0

我改變了,但它沒有工作 – MrMangado

+4

爲什麼你選擇這個答案是正確的,當它不適合你?我有確切的問題,如果問題仍然存在,那麼這裏可能會有一個正確的答案。 – electrichead

+0

這很簡單,但你也需要在你的機器上運行redis。在另一個終端窗口中運行'redis-server'。 – mhkeller