2012-05-20 36 views
6

Un módulo node.js mío se volvió demasiado grande, así que lo dividí en varios (sub) módulos más pequeños.Exportar todos los objetos en node.js

copio & pegar todos los objetos relevantes en cada uno de los submódulos, que ahora parecen

var SOME_CONSTANT = 10; 

function my_func() { etc... }; 

Ahora quiero exportar todo en cada submódulo, en masa, sin tener que decir explícitamente exports.SOME_CONSTANT = SOME_CONSTANT un millón de veces (Encuentro que tanto feo como propenso a errores).

¿Cuál es la mejor manera de lograr esto?

Respuesta

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

¿por qué necesita ese "millón" constante para las exportaciones?

+0

Debido este código duplicado (DRY, invitando a errores), además es feo. Preferiría una solución automática que pudiera copiar y pegar en cada submódulo. – user124114

+0

Creo que necesitas algún truco para reconstruir tu código, p. reemplazar = a: y; a , –

1

supongo que no desea exportar cada variable local.

voy a moverse a la automatización de éste uno de estos días, pero por ahora me suelen utilizar esta técnica.

var x1 = { shouldExport: true } ; 

// crear una macro en su editor favorito para buscar y reemplazar de manera que

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

y

name becomes x1.name 

// cuerpo principal del módulo de

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] ; } 
Cuestiones relacionadas