2012-05-20 13 views
6

Ein node.js Modul von mir wurde zu groß, also habe ich es in mehrere kleinere (Sub-) Module aufgeteilt.Exportieren Sie alle Objekte in node.js

Ich kopiere & alle relevanten Objekte in jedes der Submodule eingefügt, die wie jetzt aussehen

var SOME_CONSTANT = 10; 

function my_func() { etc... }; 

Jetzt will ich alles in jedem Modul exportieren, en masse, ohne explizit exports.SOME_CONSTANT = SOME_CONSTANT eine Million Mal zu sagen zu haben (Ich finde das sowohl hässlich als auch fehleranfällig).

Was ist der beste Weg, dies zu erreichen?

Antwort

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

Warum brauchen Sie diese "Millionen" Konstante für den Export?

+0

Weil Dies dupliziert Code (DRY, einladende Fehler), plus ist hässlich. Ich würde eine automatisierte Lösung bevorzugen, die ich in jedes Submodul kopieren und einfügen konnte. – user124114

+0

Ich denke, Sie brauchen einen Trick, um Ihren Code neu zu erstellen, z. ersetzen = zu: und; zu, –

1

Ich nehme an, Sie möchten nicht jede lokale Variable exportieren.

Ich werde es schaffen, diesen einen dieser Tage zu automatisieren, aber für den Moment verwende ich oft diese Technik.

var x1 = { shouldExport: true } ; 

// einen Makro in Ihrem bevorzugten Editor erstellen suchen und ersetzen, so dass

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

und

name becomes x1.name 

// Hauptkörper des Moduls

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] ; } 
Verwandte Themen