使用mongo-connect不会在AppFog上清除会话

我的会话没有在AppFog上清除。 我的设置如下:

Node.js(与快递)mongoDB连接mongo的会议存储mongoHQ托pipe我的数据库。

我已经把我的本地设置连接到使用mongoHQ db实例,所有的会话都被清除了。 但是,当从AppFog运行应用程序的sesssions不会被清除。

我的会话中间件:

app.use(express.session({ secret: 'my secret here', cookie: { maxAge: new Date(Date.now() + 360000)}, store: new MongoStore({ url: connectionEnv.dbConnection }) })); 

这里是一个使用和清除会话的例子:

 console.log(req.session.errors); // Session has a value as intended res.render('contact', { user: username, email: email, messages: req.session.messages, errors: req.session.errors }); req.session.messages = null; req.session.errors = null; // The session is beeing cleared console.log(req.session.errors); // Session is now null 

但是,如果我现在刷新页面,会话不知何故得到它的价值回来。 这只发生在从AppFog运行应用程序。

Express / Connect会在结束对客户端的响应之前保存会话状态( 请参见此处 )。 在调用res.render之前进行更改,并使用delete会话variables。

尝试这个:

 var errors = req.session.errors var messages = req.session.messages // Before Render delete req.session.errors delete req.session.messages res.render('contact', { user: username, email: email, messages: errors, errors: messages }); 

奥基发现了这个问题的真正问题。 这与我的caching有关。 似乎会议正在被caching,当我在我的公用文件夹上使用maxAge。 我删除了caching之后,会话正在按预期被清除。

任何人如何一个想法如何禁用caching的会议,但不是静态内容?

UPDATE

现在得到它与caching工作。 通过清除res.rendercallback中的会话并调用res.send()并传入从res.render()返回的html。