CNode

express 中定义session 时,总说报未定义。

Mmejinke发布于14 年前最后回复14 年前5 回复9478 浏览0 收藏

express 中定义session 时,总说报未定义。req.session.user = '123';

//定义共享环境
app.configure(function(){
    app.use(express.methodOverride());
    app.use(express.bodyParser());
    app.use(app.router);
    app.use(express.cookieParser());
    app.use(express.session({secret:'poynt'}));
});

//定义开发环境
app.configure('development',function(){
    app.use(express.static(__dirname+'/public'));
    app.use(express.errorHandler({dumpExceptions:true, showStack:true})); 
});

//定义生产环境
app.configure('production', function(){
   app.use(express.static(__dirname+'/public', {maxAge:36000*24*365}));
   app.use(express.errorHandler());
});

routers(app);
app.listen(8000);
查看回复

回复 (5)

F
fengmk2#1·14 年前

session 依赖 cookie,所以cookieParser必须在之前就要use上。

M
mejinke#2·14 年前
//定义共享环境app.configure(function(){
app.use(express.methodOverride());
app.use(express.bodyParser());
app.use(app.router);
app.use(express.cookieParser());
app.use(express.session({secret:'poynt'}));});
M
mejinke#3·14 年前

TypeError: Cannot set property 'user' of undefined

J
jackeychen#4·14 年前

中间件use() 的顺序有问题:

app.use(express.methodOverride()); app.use(express.bodyParser()); app.use(express.cookieParser()); app.use(express.session({secret:'poynt'}));}); app.use(app.router);

M
mejinke#5·14 年前
引用 jackeychen中间件use() 的顺序有问题: app.use(express.methodOverride()); app.use(express.bodyParser()); app.use(expre...

谢谢,第一次较正式的用express,呵呵。不太懂它的加载机制。

参与回复
登录后即可参与回复。登录