在所有Node.js模块中使用Singleton

时间:2015-09-07 04:23:54

标签: node.js

我想以某种方式创建一个全局单例模块。我将它用作上下文模块,我可以在任何模块中引用它。

我将使用它来访问我的网关(存储库)模块,以便在其他模块中使用,例如我的业务对象模块等。例如,让我说我有:

myBusinessModule.js

module.exports = {
      find: function(id){
         var user = context.userGateway.find(id);
      }
};

所以我希望能够使用context单例来获取我的节点应用程序中的其他模块。

就像在这里一样,这是Java,但我想在Node.JS中做同样的事情:CleanCodeCaseStudy

1 个答案:

答案 0 :(得分:0)

根据您的评论,对我而言,您似乎想要这样的东西。如果我错误地理解你的要求,请纠正我。

使用require()

进行访问

context.js

var context = {};
context.userGateway = require('../path/to/userGateway/module');

module.exports.context = context;
=====================================================================================

//usage in reference file
var context = require('/path/to/context/file');
module.exports = {
      find: function(id){
         var user = context.userGateway.find(id);
      }
};

无需访问权限()

var context = {};
context.userGateway = require('../path/to/userGateway/module');

GLOBAL.context = context; // makes your context object accessible globally, just like, console, require, module etc.

=====================================================================================

//usage in reference file
module.exports = {
      find: function(id){
         var user = context.userGateway.find(id); 
      }
};