2016-06-03 6 views
0

Ich entwickle in node.js. Ich habe eine Reihe von verwandten Klassen, die ich in einem Unterverzeichnis bleiben mag, eine Klasse pro Datei im Unterverzeichnis, entlang dieser Linien strukturiert:Namespace eine Sammlung von Klassen in node.js

lib/ 
    main.js 
    melons/ 
    casaba.js 
    canteloupe.js 
    carnegie.js 

Und sie in meiner Haupt-Datei wie folgt verwendet werden:

var Melons = require('./melons/'); 
var m1 = new Melons.Casaba(); 
var m2 = new Melons.Canteloupe(); 
var m3 = new Melons.Carnegie(); 

Ich denke, Ich brauche eine melons/index.js-Datei, aber ich bin nicht klar, was es enthalten würde. Irgendwelche Ideen?

Antwort

1

Ja, Sie brauchen melons/index.js zu erstellen, wie folgt strukturiert:

// file: melons/index.js 
module.exports = { 
    Casaba: require('./casaba'), 
    Canteloupe: require('./canteloupe'), 
    Carnegie: require('./carnegie'), 
}; 

Vergewissern Sie sich, dass jede der Dateien in das Unterverzeichnis eine module.exports Zuordnung hat, wie zum Beispiel:

// file: melons/casaba.js 
'use strict'; 

function Casaba() {} 
Casaba.prototype.constructor = Casaba; 

module.exports = Casaba; 

Ich glaube, das ist eine idiomatisch angemessene Lösung, aber wenn es einen besseren Weg gibt, lass es mich wissen ...

Verwandte Themen