私は最近この問題に遭遇しており、良い解決策を探しています。以下は、基本的なセットアップです。
c.js では、a は空のオブジェクトです。現在、モジュール a のメソッドにアクセスする必要がある関数 (cFunction) 内に var a=require('./a.js') を配置することで、これを回避しました。しかし、それはこれを行うための最良の方法ですか?
ありがとう、デビッド
main.js
var a = require('./a.js');
a.js
module.exports = (function() {
var b = require('./b.js');
function aFunction() {
console.log("aFunction");
}
return {
aFunction: aFunction
};
})();
b.js
module.exports = (function(){
var c = require('./c.js');
function bFunction(){
console.log('bFunction');
}
return {
bFunction: bFunction
};
})();
c.js
module.exports = (function(){
var a = require('./a.js');
console.log(a); //empty object
function cFunction(){
a.aFunction(); //undefined
console.log('cFunction');
}
return {
cFunction: cFunction
};
})();