2016-07-02 5 views
0

私はこれにどのようにタイトルを付けるか、これが理にかなっているかどうかはわかりませんでした。しかし、ここに行きます。元のファイルに依存して1つのファイルを呼び出す方法は?

私はオブジェクトを含むファイルAを持っています。私はモジュラーコマンドシステムを作りたいと思っています。これは、コマンドを格納するためにファイルBが必要であることを意味します。私は、ファイルAで処理するコマンドを決定できるようにする必要があります。ファイルbはコードを実行する必要がありますが、同じオブジェクトを使用します。

どうすればこの問題を解決できますか?

ファイルA:

var obj = { functions... } 
command.process(command) 

ファイルB:私はあなたが求めているものだと思い

var commands = { 
    name: 'help', 
    run: function(cmd) { 
     obj.sendMessage("help is on the way!") 
    } 
} 

答えて

0

は、2つのノードのモジュール間の循環依存を設定する方法です。このような依存関係の構造はbad code smellである可能性があります。そのような依存構造は避けてください。ここで緩くあなたのコードに基づく例です:

a.js

const b = require('./b'); 

Object.assign(module.exports, { 
    sendMessage: function(message) { 
     console.log(message); 
    } 
}); 

b.commands[0].run(); 

b.js

const a = require('./a'); 

module.exports.commands = [{ 
    name: 'help', 
    run: function() { 
     a.sendMessage('help is on the way!'); 
    } 
}] 

出力:

node a.js 
help is on the way! 
関連する問題