在node.js中编写模块时,我无法真正掌握被认为是好的和坏的做法.有些模块似乎使用了大量的出口,而其他模块只使用了一个,等等.
例:
var self;
var mymodule = function() {
self = this;
this.value1 = something;
this.value2 = somethingElse;
};
module.exports.init = function() {
return new mymodule();
};
mymodule.prototype.functionalityType1 = {
someFunction: function(callback) {
var a = self.value1;
anotherfunction(a, callback);
},
};
mymodule.prototype.functionalityType2 = {
someFunction: function(callback) {
var a = self.value2;
anotherfunction(a, callback);
},
};
var anotherfunction = function(v, callback) {
// do stuff with v
callback(result);
};
Run Code Online (Sandbox Code Playgroud)
每个原型显然都包含多个功能.
这样的事情会被认为是好的做法吗?
Tim*_*ple 15
这实际上取决于你正在编写什么样的模块.导出多个函数适用于具有多种方法但几乎没有内部状态可以管理的实用程序模块.想想fs(文件系统)模块.有许多文件系统方法,但它们几乎都是独立的,并且没有共享状态.
如果您正在构建具有多个操作状态的方法的有状态模块,那么您应该只导出一个构造函数并允许客户端创建他们可以管理的该对象的实例.一个例子是http允许您创建服务器的模块,该服务器具有影响其内部状态的方法.
如果您需要从模块中拥有多个对象实例,那么您实际上没有太多选择,只能导出一个返回该对象实例的函数.
它与.NET这样的框架没有什么不同,在这些框架中你有文件系统(System.IO)类,它们具有静态方法,用于验证目录存在的独立操作,或者读取文件的内容,然后它们具有类的实例类.保持状态.
| 归档时间: |
|
| 查看次数: |
3365 次 |
| 最近记录: |