当前位置 : 主页 > 网页制作 > Nodejs >

如何在Node.js中管理会话

来源:互联网 收集:自由互联 发布时间:2021-06-16
我正在使用express.session和connect-mongo作为我的DataStore. 我面临的是……在我的服务器中,我有20个不同的app.get()调用.但并非所有人都需要检查会话. 但是,如果我在服务器的开头执行此操作:
我正在使用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
我找到了解决方案. 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

网友评论