Node.js Модуль.экспортирует странное поведение

#javascript #node.js #express #cluster-computing

#javascript #node.js #выразить #кластерные вычисления

Вопрос:

Я работаю над экспресс-приложением и столкнулся со странным поведением в отношении module.exports .

server.js

 var server = cluster(app).use(cluster.debug()).listen(3000);
module.exports.cluster = server;
  

index.js

 // Works
var server = require('./server');
console.log(server.cluster); // = Cluster object

# Doesn't work:
var server = require('./server').cluster;
console.log(server); // = undefiend
  

На мой взгляд, оба решения должны работать так же, как и при работе с mongoose или около того. Это происходит только при экспорте learnboost cluster . Есть идеи?

Заранее спасибо!

Комментарии:

1. Вероятно, у вас есть циклическая зависимость в ваших модулях, поэтому экспортируемый объект на самом деле не готов к первой точке вызова.

2. значит, второй никогда не будет работать, за исключением того, что экспортируемое значение готово, как строки и прочее?

3. Это зависит от того, мне нужно будет просмотреть все require() вызовы в обоих файлах, чтобы подтвердить, что это возможно; похоже, вы поделились только частью.

4.Да, это была только часть. Полный код: server.js : pastie.org/2750393 index.js : pastie.org/2750387

5. Не выглядит проблематичным, если app только не требует того, что вы не опубликовали.