1

Node.js モジュールを作成するためのベスト プラクティス、特にコード分離のために従うべき JavaScript パターンの種類を知りたいと思っていました。

私が使用してきたスタイルの 1 つは、次のとおりです。

var Something;

Something = (function() {

    function Something() {
    }

    Something.prototype.some = function() {

    }

    return Something;

})();

module.exports = Something;

別のスタイルは次のとおりです。

module.exports = {
 item: "one",
 some: function() {

 },
 another: function() {

 }
}

node.jsで2番目の方法が推奨されない理由はありますか? または、優先される別の形式はありますか?また、その利点は何ですか?

ありがとうございました!

4

2 に答える 2

1

There are several variants including assigning properties directly to exports, assigning a new object literal to module.exports and a few others. For the most part they are just syntax sugar or syntax alternatives that accomplish exactly the same thing. My personal preference is to leave as much of my code as possible unpolluted pure JS, and keep the CommonJS idioms separate. So I do:

function myFunction() {

}

var MY_STRING = "Forty-two";


module.exports = {
    myFunction: myFunction,
    MY_STRING: MY_STRING
};

It's a bit boilerplate-y and prone to maintenance mistakes, but I prefer it to the alternatives as I really dislike putting the CommonJS module level names (module, exports) sprinkled throughout my code. CoffeeScript makes the last part easier since you can just do:

module.exports = {
    myFunction
    MY_STRING
}
于 2012-11-08T16:19:51.930 に答える
1

「this」キーワードを使用すると問題が発生します。「何か」の代わりに使用する必要があるもの。したがって、Something.some() を実行できます...しかし、それを一番下で実行したい場合は、this.run() を実行する必要があります。この範囲は他の関数内で変更され、混乱する可能性があります。

于 2012-11-08T16:16:40.487 に答える