2013-05-03 3 views
1

Проблема в том, что у меня есть несколько отдельных модулей, которые я экспортирую с использованием module.exports и зависят от них. Say-компилировать порядок модулей node.js

mongohelper 
transaction 
server 
conhandlr 
appmin 

Теперь серверный модуль содержит общий объект, который требуется другим четырем модулям. Тем не менее, при компиляции приложения узла, некоторые из этих модулей собраны до серверного модуля, например, с помощью консольного вывода я обнаружил, что приказ был -

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

Итак, есть ли способ, с помощью которого я могу убедиться, что серверный модуль сначала компилируется, так что любые зависимые модули не имеют неопределенных объектов?

+1

Как вы заявляете о своей зависимости от модуля 'server'? – Bergi

+0

имеет общую переменную объекта, которая должна быть разделена между всеми модулями. Таким образом, server.commonVar должен быть таким же. Его содержимое динамически изменяется в серверном модуле. Серверный модуль используется с использованием обычного require(). Если какая-либо помощь, я использую «module.exports» вместо «export». – digster

+0

Как вам «скомпилировать»? – TheHippo

ответ

-1

Без реального кода трудно понять, что вы действительно хотите знать, но я попытаюсь дать вам общее представление о том, как работают модули узлов.

require("module") - это синхронный вызов. Полный модуль оценивается/«компилируется» до того, как синтаксический анализатор продолжит работу со следующей строкой кода. Это означает, что все зависимости выполняются в том порядке, в котором они были указаны. Они также выполняются только один раз за процесс. Это означает, что если вам требуется один и тот же модуль несколько раз, он выполняется только в первый раз и кэшируется его module.exports.

Предлагаю прочитать docs.

+0

Почему это плохой ответ? – buschtoens

Смежные вопросы