如何在核心node.js / non express.js项目中处理/创建用于服务器端会话管理的中间件。我可以找到基于Express的项目的模块,但不能找到核心node.js的模块。请向我建议非express.js项目的任何模块或中间件。
答案 0 :(得分:1)
可以通过数据库(MySQL,MongoDB,Redis等)或某些本地缓存来实现会话管理。
会话背后的主要逻辑-是带有数据的对象。
因此,您可以为首次互动的用户提供一些随机ID,例如uuid
。
并将其保存到如下所示的模块中:
class OwnSession(){
constructor(){
this.sessions = {};
}
getUser(sessionId){
return this.sessions[sessionId];
}
setUser(sessionId, userData){
if(this.sessions[sessionId]){
Object.assign(this.sessions[sessionId], userData);
return;
}
this.sessions[sessionId] = userData;
}
}
// We export here new OwnSession() to keep singleton across your project.
module.exports = new OwnSession();
然后,在任何模块中,您都需要OwnSession
并调用该方法。