Tengo el módulo A que usa un patrón singleton para crear un objeto que debe compartirse.
A.js: ... let instance = undefined; module.exports { init: function () { if(!instance) instance = new Instance(); }, getSomeValue: function () { return instance.get(); }, };Tengo dos módulos B y C diferentes, donde cada uno depende del mismo módulo A,
B.js const { init, getSomeValue } = require('A'); function middleware1(req, res, next) { init(); next(); } module.export = middleware1; C.js const { getSomeValue } = require('A'); function middleware2(req, res, next) { console.log(getSomeValue()); // throws undefined, can not recognise initialisation by B module next(); } module.export = middleware2; main application: ... app.use(middleware1()); app.use(middleware2()); ... pero hay copias separadas de ese módulo dependiente en el subdirectorio node_modules de cada uno de los dos módulos diferentes. Quiero inicializar la instance una vez sin importar desde qué biblioteca/módulo se crea una instancia y quiero compartir el objeto en todas las bibliotecas/módulos que lo usan en el mismo proyecto.
¿Cómo puedo acceder al estado de la instance que deseo compartir en todo el proyecto de nodo?