如何调用一个文件,依赖原始文件?

时间:2016-07-02 02:55:13

标签: javascript node.js

我不确定如何标题,或者这是否有意义。但是,我们走了。

我有一个包含对象的文件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!")
    }
}

1 个答案:

答案 0 :(得分:0)

我认为您要问的是如何在两个节点模块之间建立循环依赖关系。这样的依赖结构可能是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!