使用没有express.js的核心node.js进行会话管理

时间:2018-12-26 12:48:23

标签: node.js session

如何在核心node.js / non express.js项目中处理/创建用于服务器端会话管理的中间件。我可以找到基于Express的项目的模块,但不能找到核心node.js的模块。请向我建议非express.js项目的任何模块或中间件。

1 个答案:

答案 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并调用该方法。