2016-08-13 5 views
1

私はJavaC#の開発者です。私がNodeJSで作業しているのは初めてです。プロジェクト内でグローバルを使用してパラメータを渡す代わりに

私は、プロジェクト内のいくつかのパラメータの値を利用可能にしたいと考えています。たとえば、プロジェクト全体でUserIdを使用したいとします。私はglobal.username="SIA"を使用してそれを保存し、同じものを使用してパラメータを取得します。

globalを使用していることが、NodeJSではお勧めできません。だから、回避策は何ですか?

+0

スタンドアロンモジュールのmyglobal.jsでvarsを定義し、それらをエクスポートすることができます。 'module.exports = {var1:10、var2:...}' 'それを' var global = require( 'myglobal.js'); 'で使用します。 'global.var1 = 11'の後、この変数もグローバルで変化します。 –

答えて

0

グローバルを使用するのは悪い習慣です。 たとえば、単体テストや再利用性のためです。似たような状況で

設定で別の設定ファイルを作成し、モジュール

あなたの子供モジュールかもしれないルックスにそれを注入:

module.exports = function (config, otherDependences) { 
    ... 
}; 

と親要素かもしれないルックス:

var config = ...; 
var otherDependences 
require('./path/to/childComponent')(config, otherDependences); 

ほとんどのコンポーネントは両方の構造を持ちます "

module.exports = function (config, otherDependences) { 
    ... 
    require('./path/to/childComponent')(config, otherDependences); 
    ... 
}; 

構造を階層的に構築します。各コンポーネントは、一部のコンポーネントでは子、他のコンポーネントでは親です。しかし、すべてではなく、必要なデータだけを渡すと、単体テストが簡素化されます。

関連する問題