2016-06-25 4 views
0

これは簡単な問題だと思われますが、インターネットの答えはes5、babel、typescript、または従来のノード4の質問にぎこちなくなっています。モジュールから値をエクスポートする方法は?

質問:これをエクスポートする方法:ES6、無バベル、または追加のノードパッケージでピュアノード5

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

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

**server.js** 
class Server { 

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

    start() { 
     // Some code here. 
    } 

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

は、このような正確をapp.js使用するには。ちょうどこれ。

+0

エクスポートする方法ノードモジュールの値は変更されていません(まだ)。どちらのノードのバージョンを使用しても同じです(これもESのバージョンを決定します)。 https://nodejs.org/api/modules.html(https://www.google。を検索すると、btwはトップの結果の1つです)のシステムのドキュメントを常に見てください。 com /?q = how%20to%20export%20from%20node%20module)。 –

答えて

3

あなたは、クラスをエクスポートすることができます。

module.exports = Server; 

そして、server.jsapp.jsと同じディレクトリに配置されている場合、あなたも、require()のための相対パスを使用する必要があります。

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

Nope:エラー:Module.requireのFunction.Module._load(module.js:276:25)の Function.Module._resolveFilename(module.js:325:15)でモジュール 'server'を見つけることができません Function.Module._load(module.js:276:25) Module .js:353:17) at require(internal/module.js:12:17) atオブジェクト。 (モジュールパス:\ app.js:1:76) をModule._compile(module.js:397:26) Object.Module._extensions..js(module.js:404:10) (module.js:429:10) Module.runMainで[Module.js:429:10]のModule.load(module.js:343:32) をFunction.Module._load(module.js:300:12)で キーを続ける... – Piranha

+1

ローカルファイルの場合と同様に 'require( './ server')'を使用します。あるいは、 'server.js'が置かれているディレクトリを' $ NODE_PATH'に追加します(ただしこれは_exporting_自体とは関係ありません)。 – robertklep

+0

さて、ありがとう!修正されたインポート行を追加できますか? "var Server = require(" ./ server ");"あなたの答えに?誰かがこれにつまずいた場合、最初にこのインポートが間違っていることを直接見ることができます。 – Piranha

関連する問題