快递js会话中的未定义错误

时间:2014-04-14 21:31:18

标签: javascript node.js session express

我希望在会话参数中保存数据。

/* Modules */

/* App Settings */
// session settings
app.use(express.cookieParser());
app.use(express.session({secret: '1234567890QWERTY'}));

app.get('/', function(req,res){
if(req.session.param){
    console.log('OK!');
}else{
    console.log('not found session data');
}
});

app.listen(app.get('port'));

当我运行此代码时

TypeError: Cannot read property 'param' of undefined
at C:\Users\frknbasaran\campusca\app.js:25:16

提前致谢

除非您按此顺序拥有这3个,否则会话无法正常工作:

app.use(express.cookieParser());
app.use(express.session({secret: '1234567890QWERTY'}));
app.use(app.router);

3 个答案:

答案 0 :(得分:1)

你需要先设置它......我没有在你的代码中看到这个,比如:

req.session.param = "Hello World";

除非param引用请求对象附带的属性,该属性仅包含url变量。

答案 1 :(得分:1)

你不能设置req.session.params,因为它的req.session是没有的。那么cookieSession呢。这应该给你req.session http://expressjs.com/3x/api.html#cookieSession

答案 2 :(得分:0)

除非您按此顺序拥有这3个,否则会话将无效:

app.use(express.cookieParser());
app.use(express.session({secret: '1234567890QWERTY'}));
app.use(app.router);