很抱歉,标题有误导性或含糊其词,我真的想不出一种很好的方式来描述我要做的事情。
基本上,我的index.js文件通过require调用另一个文件,我们将其称为js_functions.js。js_functions.js正在通过require调用多个文件,并且这些单个文件都正确地导出了功能。
为了举例,我们将说结构为index.js> js_functions.js> add.js。
是否有一种方法可以从index.js中的add.js调用函数,而无需直接要求index.js中的add.js(通过js_functions .js)?
如果index.js
要从add.js
调用函数,那么您有两个选择:
[index.js
可以直接require('add.js')
,从而从add.js
获取导出的函数以进行调用。
[js_functions.js
可以从add.js
导出功能,因此当您require('js_functions.js')
时,要从add.js
调用的功能在js_functions.js
导出中可用。
[通常,我避免像选项#2中那样双重导出,如果我想从add.js
中获取一个函数,我只是直接将依赖项设为require('add.js')
,然后清除它,以便可以访问该函数。
如果您是Node.js模块开发的新手,那么开始每个新的模块定义就需要一点适应,但是只需添加访问模块/功能所需的所有require
语句即可你需要。但是,这是在node.js中进行模块开发的方式,它具有各种好处(可测试性,可重用性,可共享性,无隐式依赖项的明确依赖项等)。因此,只需习惯在每个模块的开头添加一些额外的代码即可导入所需的内容。
有没有一种方法可以直接从index.js中的add.js调用函数,而无需直接要求index.js中的add.js(通过js_functions.js)?
仅当js_functions.js
从您要调用的add.js
中导出函数时。只是因为js_functions.js
已经完成require('add.js')
,所以它无法访问add.js
中除js_functions.js
之外的任何其他代码。
将来,当您包含实际的相关代码时,我们可以为您提供更准确,更快的帮助。与尝试使用单词(而不使用代码)来描述某个问题的理论性问题相比,对于包含特定代码的特定问题,我们倾向于做得更好。