2012-05-20 3 views
6

Узел узла node.js слишком большой, поэтому я разделил его на несколько меньших (вспомогательных) модулей.Экспортировать все объекты в node.js

скопировать & вставить все соответствующие объекты в каждом из подмодулей, которые теперь выглядят как

var SOME_CONSTANT = 10; 

function my_func() { etc... }; 

Теперь я хочу, чтобы экспортировать все в каждом подмодуль, в массовом порядке, без явного сказать exports.SOME_CONSTANT = SOME_CONSTANT в миллион раз (Я нахожу, что оба уродливые и подверженные ошибкам).

Каков наилучший способ достичь этого?

ответ

0
module.exports = { 
    SOME_CONSTANT_0 : SOME_CONSTANT_1 , 
    SOME_CONSTANT_1 : SOME_CONSTANT_2 , 
    SOME_CONSTANT_2 : SOME_CONSTANT_3 
} 

так зачем вам этот «миллионный» постоянный экспорт?

+0

Поскольку этот код дубликатов (DRY, приглашение ошибок), плюс является уродливым. Я бы предпочел автоматическое решение, которое я мог бы скопировать и вставить в каждый подмодуль. – user124114

+0

Я думаю, что вам нужен какой-то трюк, чтобы перестроить ваш код, например. replace = to: and; , –

1

Я предполагаю, что вы не хотите экспортировать каждую локальную переменную.

Я займусь автоматизацией этого дня, но на данный момент я часто использую эту технику.

var x1 = { shouldExport: true } ; 

// создать макрос в вашем любимом редакторе для поиска и замены, так что

x1.name = value ; // instead of var name = value 

и

name becomes x1.name 

// основной корпус модуля

for (var i in x1) { exports.better_longer_name[i] = x1[i] ;} 
//or if you want to add all directly to the export scope 
for (var i in x1) { exports[i] = x1[i] ; } 
Смежные вопросы