具有显示模块模式的Nodejs循环依赖

时间:2016-09-02 04:03:49

标签: javascript node.js revealing-module-pattern cyclic-dependency

我最近遇到过这个问题,正在寻找一个好的解决方案。 以下是基本设置。

在c.js中,a是一个空对象。目前,我通过将var a = require(' ./ a.js')放在需要访问模块a方法的函数(cFunction)中来解决这个问题。但这是最好的解决方法吗?

谢谢, 大卫

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
    };

})();

0 个答案:

没有答案