如何在Node.js中管理会话

时间:2011-08-31 01:58:55

标签: session node.js express

我正在使用express.session,connect-mongo是我的DataStore。

我面临的是......在我的服务器中,我有20个不同的app.get()调用。但并非所有人都需要检查会话。

但是,如果我在服务器的开头执行此操作:

express.createServer( express.session({ ... }));

然后每次调用都会触发express.session,从而将会话设置为mongoDB。

如何限制我只想触发express.session?

e.g. app.get('/getASession')  will get a session
app.get('/donotGetSession')  will not even trigger express.session 

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。 express.session作为一个函数返回。所以我可以这样做:

global.mySession = express.session({ secret: session_secret,
    store:new MongoStore({  
        db: session_db_name,
        host: session_db_ip,
        port: session_db_port
    })
});



app.get('/checkSession', mySession, function (req, res) {
    res.send("<div>ok</div>");
});

所以,如果我不想使用会话,那么我不会将mySession放在那里。 :)简单。我喜欢节点。 :d