1

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

 mongohelper
 transaction
 server
 conhandlr
 appmin

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

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

那么,有没有一种方法可以确保服务器模块首先编译,以便任何依赖模块都没有未定义的对象?

4

1 回答 1

-1

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

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

我建议阅读文档

于 2013-08-04T22:47:05.217 回答