2012-03-27 9 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モジュールがあり、そのサーバーには内部状態に影響を与えるメソッドがあります。

モジュールから複数のオブジェクトインスタンスを取得する必要がある場合は、実際にはオブジェクトのインスタンスを返す関数をエクスポートするだけではあまり選択肢がありません。

ディレクトリの存在の確認やファイルの内容の読み込みなどのスタンドアロン操作のための静的メソッドを持つファイルシステム(System.IO)クラスがある.NETのようなフレームワークとは異なります。状態を維持するクラスのクラス。

関連する問題