2016-06-25 2 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 (btw는 https://www.google. com /? q = how % 20to % 20export % 20from % 20node % 20module). –

답변

3

: server.jsapp.js와 같은 디렉토리에있는 경우,

module.exports = Server; 

을 그리고, 당신도 require()에 대한 상대 경로를 사용해야합니다

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

아니요 : 오류 : Function.Module._load (module.js : 276 : 25)에서모듈을 찾을 수 없음 .js : 353 : 17) at require (internal/module.js : 12 : 17) at Object. (모듈 경로 : \ 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

관련 문제