编译node.js模块的顺序

时间:2013-05-03 12:13:42

标签: javascript node.js node-modules

问题是我有许多单独的模块,我使用module.exports导出并且是相互依赖的。说 -

 mongohelper
 transaction
 server
 conhandlr
 appmin

现在,服务器模块包含其他四个模块所需的公共对象。但是,在编译节点应用程序时,其中一些模块是在服务器模块之前编译的,例如通过使用控制台输出我发现订单是 -

 Compile order-
 mongohelper
 transaction
 server (..the upper modules have undefined common object now)    
 conhandlr 
 appmin 

那么,有没有办法确保服务器模块首先编译,以便任何相关模块都没有未定义的对象?

1 个答案:

答案 0 :(得分:-1)

没有任何实际代码,很难理解您真正想知道的内容,但我会尝试让您基本了解节点模块的工作原理。

require("module")是同步通话。在解析器继续使用下一行代码之前,将对整个模块进行评估/“编译”。这意味着,所有依赖项都按照指定的顺序执行。它们也只在每个进程执行一次。这意味着,如果您需要多次使用同一个模块,那么它只会在第一次执行并且其module.exports被缓存。

我建议您阅读docs