我有一个名为internal.js的文件,它看起来像这样:

module.exports = deps => async (event) => {
    console.log(deps.a);
    console.log(aFunction());

    function aFunction() {
        return "This is the aFunction - " + deps.a;
    }
}


和另一个external.js文件,它看起来像这样:

let internal = require('./internal')({
  a: "this is the a variable"
});

internal();


我执行此启动require,结果是:

➜ node external.js
this is the a variable
This is the aFunction - this is the a variable


好吧,现在。由于测试原因,我想直接调用在node external.js内编码的aFunction的能力(请注意,由于internal.js我不能将deps.a移到aFunction之外)。我能怎么做?

最佳答案

当前,您internal.js仅导出函数。这意味着external.js只能访问此功能。由于aFunction()只是导出函数中本地定义的变量,因此它不在external.js的范围内,因此无法访问。

您必须通过以下任一方式公开它:


aFunctiondeps =>函数一起作为导出对象的属性放置
让您的导出函数返回一个包含aFunction的对象
让内部异步函数返回一些值,您可以使用该值访问aFunction

09-25 16:15