2011-12-05 4 views
3
私はNode.jsのためのCMSシステムに取り組んでいます

、私はそれらのNode.jsのための簡単な質問を持っているプロのNode.jsのは

私は、モジュールを作成し、それらのモジュール内のモジュールを必要としていますが、私の場合親モジュールにすでにこのモジュールを含めていますが、必要なモジュールにアクセスできますか?例については

main.js 
    var fs = require('fs'); 
    var sc = require('second.js'); 


second.js 
    var fs = require('fs'); // Is there any way to use the parent modules fs object? 

ちょうど私が私のサブモジュールの一部で同じモジュールを含むとかなり可能であればことをやるわけではないようです。

ありがとうございます!

答えて

6

ノードはモジュールが最初に含まれているときにキャッシュします(つまり、モジュールを要求する副作用は2回目に実行されません)。 require.cacheを改ざんすることによって、このキャッシュを強制的にクリアすることができます(したがって、この副作用を再実行します)。有用な情報の

var parent = module.parent.exports; 

モジュールオブジェクトを格納かなり、を含む:

+0

私はそれを読んだが、冗長であるように見える。しかし、不利な点がなければ、私はそれらを再含めるだけです。 –

+0

私は、各モジュールが明確な "入力"(必要と機能のパラメータ)と "出力"(エクスポート)を持っているので、それがモジュラーシステムに行く方法だと思います。 –

10

がケースでは、現在のモジュールから親モジュールを取得するための簡単な方法を探してここに来た、ここでそれを行うの方法ですそれをロードした親モジュールへの参照です。

var parent = module.require(module.parent.id); 
+9

'module.parent'は、その特定のインスタンスの親ではなく、モジュールを最初にロードした親を指すことに注意してください。 –