调用方法包含我的文件的JS文件

时间:2015-04-17 22:21:50

标签: javascript node.js

父文件:Parent.js

exports.execute = function execute(request) {
    var result = executeChild(request);  // Will not work as the executeChild function is not in this file.
    return "Hi!";
}

子文件:Child1.js

common = require('common');
execute = common.execute;
function executeChild(request) {
    return "Hello1";
}

子文件:Child2.js

common = require('common');
execute = common.execute;
function executeChild(request) {
    return "Hello2";
}

API的所有用户都会调用执行方法,他们不知道父子(确定可能不是真正的父子关系)关系。 如何使此函数调用(执行子)工作。

NodeJs用于执行此操作。

我会尝试更新子文件中的函数作为最后的手段,而不是之前。

1 个答案:

答案 0 :(得分:0)

更改common以将子函数作为参数:

exports.execute = function execute(request, executeChild) {
    var result = executeChild(request);  
    return "Hi!";
}

在“子”模块中,您可以运行(注意()之后executeChild在调用普通模块时缺少function executeChild() {} require('common').execute(request, executeChild); 。)

global.executeChild

如果您正在寻找通过包含任何一个子模块来改变常见行为的“神奇”方式,那么您可能需要全局变量{{1}},但这不是节点中的事情。明确传递函数最好。