2013-10-26 3 views
0

Я видел несколько сообщений, связанных с этим, но никто не решил мою проблему.req.session undefined in 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.configure(function(){ 
    app.set(express.cookieParser()); 
     app.set(express.session({secret: "This is a secret"})); 
}); 

с

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

и посмотреть, что происходит.

+0

It Works !!! Благодаря!! – Kemical

+0

Добро пожаловать;) –

Смежные вопросы