2013-10-26 52 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

不客气;) –

相关问题