使用ExpressJS在AppFog上进行会议

我在ExpressJS应用程序中遇到问题。 在本地它的作品完美,但是当我在AppFog上托pipe我的应用程序时,我得到了会话的一些问题,他们有时会丢失…在我的pipe理面板。

我不知道为什么,但是,当页面刷新,会议不再工作…

var restrictedArea = function(req, res, next) { if( req.session.access ) next(); else res.redirect('/signin'); } // Get/Post example on admin panel app.get('/posts/add', restrictedArea, admin.addPost); app.post('/posts/add', restrictedArea, admin.savePost); app.post('/posts/delete', restrictedArea, admin.deletePost); app.get('/posts/edit/:id', restrictedArea, admin.editPost); 

我的app.configure:

 app.configure(function () { app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.static(path.join(__dirname, 'public'))); //app.use(express.session({secret: 'some secret'})); app.use(express.cookieSession({ secret: 'SECRET', cookie: { access: false } }) ); app.use(express.session({secret: 'some secret'})); app.use(app.router); app.use(function(req, res, next){ res.render('404.jade', { title: "404 - Page Not Found", showFullNav: false, status: 404, url: req.url }); }); }); 

我的路线:

 exports.authenticate = function(req, res) { if( req.body.username == user.username && req.body.password == user.password ){ req.session.access = true; renderToAdminIndex(req, res); }else{ req.session.access = false; renderToSignin(req, res, "Error, please try again!"); } } 

登出function:

 exports.signout = function(req, res) { req.session.destroy(function(){ res.redirect('/'); }); } 

安东尼

如果您使用Express 3.x,则需要使用express.cookieSession

 app.configure(function () { ... app.use(express.cookieParser()); app.use(express.cookieSession( { secret: 'SECRET', cookie: { maxAge: ... } } )); 

参考: http : //expressjs.com/api.html#cookieSession

UPDATE

清理会话:

 exports.signout = function(req, res) { req.session = null; res.redirect('/'); }