问题是我有许多单独的模块,我使用module.exports导出并且是相互依赖的。说 -
mongohelper
transaction
server
conhandlr
appmin
现在,服务器模块包含其他四个模块所需的公共对象。但是,在编译节点应用程序时,其中一些模块是在服务器模块之前编译的,例如通过使用控制台输出我发现订单是 -
Compile order-
mongohelper
transaction
server (..the upper modules have undefined common object now)
conhandlr
appmin
那么,有没有办法确保服务器模块首先编译,以便任何相关模块都没有未定义的对象?
答案 0 :(得分:-1)
没有任何实际代码,很难理解您真正想知道的内容,但我会尝试让您基本了解节点模块的工作原理。
require("module")
是同步通话。在解析器继续使用下一行代码之前,将对整个模块进行评估/“编译”。这意味着,所有依赖项都按照指定的顺序执行。它们也只在每个进程执行一次。这意味着,如果您需要多次使用同一个模块,那么它只会在第一次执行并且其module.exports
被缓存。
我建议您阅读docs。