如何在核心 Node.js/非express.js 项目中处理/创建用于服务器端 session 管理的中间件。我可以找到基于 Express 的项目的模块,但不能找到核心 Node.js 的模块。请向我推荐任何适用于非express.js 项目的模块或中间件。
最佳答案
session 管理可以通过数据库(MySQL、MongoDB、Redis等)或一些本地缓存来实现。
session 背后的主要逻辑 - 是带有数据的对象。
因此,您可以在第一次交互时为用户提供一些随机 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
的模块中并调用该方法。
关于node.js - 使用核心 Node.js 而不使用express.js 进行 session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53932342/