父文件: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用于执行此操作。
我会尝试更新子文件中的函数作为最后的手段,而不是之前。
答案 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}},但这不是节点中的事情。明确传递函数最好。