Есть следующие nodejs модули:- controller.js
- sessoins_manager.js
- first_api_user.js
- second_api_user.js
Сценарий: controller.js - главный модуль, который инициирует создание сессий в sessions_manager.js, которые и остаются в sessions_manager.js.
sessions_manager.js:
let sessions = {}
module.exports = {
createSession: params => {
sessions[params.name] = params.data;
},
getSession: name => {
return sessions[name];
}
}
Затем модули
first_api_user.js и
second_api_user.js должны получить определенную сессию, находящуюся в
sessions_manager.js. Но само собой не смогут, потому что
require('sessions_manager.js')
в
first_api_user.js и
second_api_user.js будет возвращать новый экземпляр модуля, в котором соответственно нет никаких сессий.
На сколько я понимаю, такая концепция нарушает принципы инкапсуляции, но я не могу найти другого решения. Соответственно вопрос: как такое сделать, или каким способом будет правильно реализовать такую систему?