使用core node.js而不使用express.js进行会话管理

使用core node.js而不使用express.js进行会话管理,node.js,session,Node.js,Session,如何在core node.js/non express.js项目中处理/创建用于服务器端会话管理的中间件。我可以找到基于express的项目的模块,但找不到core node.js的模块。请向我推荐非express.js项目的任何模块或中间件。会话管理可以通过数据库(MySQL、MongoDB、Redis等)或一些本地缓存实现。 会话背后的主要逻辑是对象和数据。 因此,您可以在第一次交互时向用户提供一些随机id,如uuid 并将其保存到某个模块,如下所示: class OwnSession(){

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

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

Hi,感谢您的回复。我得到了它。但是如何计算一个用户的空闲时间(不是总的时间花费),这样我就可以让他注销。@Subham一段时间后注销的主要思想是给这个用户添加时间戳。例如,对于来自具有某个会话的用户的每个请求,您必须更新用户会话对象中的时间字段。另存为时间戳。在处理用户请求时,您可以验证当前服务器的时间戳是否小于或大于允许的用户空闲时间,并生成一些操作。返回数据或错误,收到了。非常感谢。