2012-03-27 87 views
9

我真的不能得到什麼被認爲是在node.js中寫一個模塊時是好的,不好的做法,一握的時候有什麼好的做法有些模塊似乎使用了大量出口的同時,其他用途只有一個,等編寫的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); 
}; 

每個原型將包含多個功能明顯。

這樣的事情會被認爲是好的做法嗎?

回答

15

這真的取決於你正在寫什麼樣的模塊。對於具有多個方法但很少或沒有內部狀態進行管理的實用程序模塊,導出多個函數非常適用。想想像fs(文件系統)模塊。有許多文件系統方法,但它們幾乎都是獨立的,沒有共享狀態。

如果你正在構建與上狀態下工作,那麼你或許應該只是導出一個構造函數,並允許客戶創建對象,他們可以管理的實例多種方法有狀態的模塊。例如http模塊允許您創建服務器,並且該服務器具有影響其內部狀態的方法。

如果你需要有從模塊中的對象的多個實例,那麼你真的沒有太多的選擇,但出口,它返回對象實例的功能。

這與.NET等框架並沒有什麼不同,在這些框架中,您有文件系統(System.IO)類,它們具有用於獨立操作的靜態方法,如驗證目錄是否存在,讀取文件的內容,然後是實例維護狀態的類的類。