首页 > 解决方案 > 使用没有 express.js 的核心 node.js 进行会话管理

问题描述

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

标签: node.jssession

解决方案


会话管理可以通过数据库(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调用该方法。


推荐阅读