2013-10-26 54 views
0

我已經看過幾篇與此相關的帖子,但沒有解決我的問題。req.session在Express.js中未定義

我有這樣的代碼在server.js

var express = require('express'); 
var app = express(); 
app.configure(function(){ 
    app.set(express.cookieParser()); 
     app.set(express.session({secret: "This is a secret"})); 
}); 
app.get('/name/:name', function(req, res){ 
    req.session.name = req.params.name; 
    res.send("<a href='/name'>GO</a>"); 
}); 
app.get('/name', function(req, res){ 
    res.send(req.session.name); 
}); 
app.listen(3000); 

當我去http://localhost:3000/user/someone這就是我得到 TypeError: Cannot set property 'name' of undefined at /Users/Me/Node/server.js:10:19 at callbacks

+1

是不是'app.use(express.cookieParser())'等? –

+1

(另外,我認爲'app.configure'不是必需的,只保留爲遺留的,你應該調用'app.use(stuff)')。 –

+0

'app.configure()'方法不是遺留的,也不是在這裏使用不正確。這裏的問題是提出問題的人使用的是用於設置設置的方法,而不是應用中間件的方法。 – hexacyanide

回答

3

決定從註釋複製輸出。試着用

app.use(express.cookieParser()); 
app.use(express.session({secret: "This is a secret"})); 

更換

app.configure(function(){ 
    app.set(express.cookieParser()); 
     app.set(express.session({secret: "This is a secret"})); 
}); 

,看看會發生什麼。

+0

It Works !!!謝謝!! – Kemical

+0

不客氣;) –

相關問題