Node.js命名空间

为了最大限度地利用Node的模块/ require()/ exports设置来做适当的OO编程,需要努力一点点。 是不是很好的做法是创build全局名称空间,而不使用导出(如在客户端js应用程序开发中)? 所以,在模块(Namespace.Constructor.js)中:

Namespace = Namespace || {}; Namespace.Constructor = function () { //initialise } Namespace.Constructor.prototype.publicMethod = function () { // blah blah } 

…在调用文件只是使用…

 requires('Namespace.Constructor'); var object = new Namespace.Constructor(); object.publicMethod(); 

谢谢

在node.js中,模块位置是命名空间,所以不需要在代码中使用命名空间。 我认为这有些问题,但它们是可以pipe理的。 节点只会暴露您附加到module.exports对象的代码和数据。

在你的例子中,使用下面的代码:

 var Constructor = function() { // initialize } Constructor.prototype.publicMethod = function() {} module.exports = Constructor; 

然后,在您的调用代码中:

 var Constructor = require('./path/to/constructor.js'); var object = new Constructor(); object.publicMethod();