2016-06-25 16 views
0

Dies scheint ein einfaches Problem zu sein, aber die Antworten Internet ist mit Es5, Babel, Typescript oder Legacy Node 4 Fragen überladen.Wie exportiert man einen Wert von einem Modul?

Frage: Wie diese exportieren:

**server.js** 
class Server { 

    constructor(port) { 
     this._port = port; 
    } 

    start() { 
     // Some code here. 
    } 

    stop() { 
     // Some code here. 
    } 
} 

Um es zu nutzen app.js genau wie folgt aus:

**app.js** 
var Server = require("server"); 

var server = new Server(80); 
server.start(); 

Reine Knoten 5 mit ES6, ohne babel oder zusätzliche Knoten Pakete . Nur das.

+0

Wie exportieren Ein Wert von einem Knotenmodul wurde (noch) nicht geändert. Es ist egal, welche Knotenversion Sie verwenden (was auch die ES-Version bestimmt). Ihr erster Schritt sollte immer sein, die Dokumentation des Systems selbst zu betrachten: https://nodejs.org/api/modules.html (was übrigens eines der besten Ergebnisse ist, wenn ich nach https://www.google. com /? q = wie% 20 bis% 20 Export% 20 von% 20 Knoten% 20Modul). –

Antwort

3

Sie die Klasse exportieren:

module.exports = Server; 

Und wenn server.js im selben Verzeichnis wie app.js befindet, sollten Sie einen relativen Pfad für require() auch verwenden:

// app.js 
var Server = require("./server"); 
... 
+0

Nein: Fehler: Das Modul 'Server' konnte nicht gefunden werden. Function.Module._resolveFilename (module.js: 325: 15) bei Function.Module._load (module.js: 276: 25) bei Module.require (Modul .js: 353: 17) bei require (internal/module.js: 12: 17) bei Object. (mein \ pfad \ zu \ app.js: 1: 76) bei Module._compile (module.js: 397: 26) bei Object.Module._extensions..js (module.js: 404: 10) bei Module.load (module.js: 343: 32) bei Function.Module._load (module.js: 300: 12) bei Module.runMain [als _onTimeout] (module.js: 429: 10) Drücken Sie auf eine beliebige Taste key to continue ... – Piranha

+1

Verwenden Sie 'require ('./ server')', wie Sie es für lokale Dateien tun sollten. Oder fügen Sie das Verzeichnis hinzu, in dem 'server.js' sich in' $ NODE_PATH' befindet (aber das hat nichts mit _exporting_ an sich zu tun). – robertklep

+0

Okay, danke! Könnten Sie die korrigierte Importzeile hinzufügen "var Server = require (" ./server ");" zu deiner Antwort? Wenn jemand darauf stolpert, kann er direkt sehen, dass dieser Import überhaupt falsch ist. – Piranha

Verwandte Themen