2011-05-09 5 views

답변

4

exports = handle

exports 불리는 로컬 변수를 생성한다. 이것은 module.exports 덮어 쓰기와 다릅니다.

module.exports = handle

이 모듈 범위에 살고 수출 변수를 덮어,이 후 require 읽을 수 있습니다.

브라우저에서 window["foo"]foo은 동일하지만 노드 module["foo"]foo은 노드에서 조금씩 다르게 작동합니다.

로컬 변수 범위 컨텍스트와 module은 서로 다릅니다.

1

는 수행

function handle(msg) { 
    .... 
} 
module.exports = handle; 

을 그것을 당신이 원하는 방식으로 작동합니다.

+1

또는 module.exports = function (msg) {} – Tom

0

이 문제 뒤에 문제 (exports.somethingmodule.exportsexports)는 가장이 문서에서 설명 :

http://www.alistapart.com/articles/getoutbindingsituations

첫 번째 버전 (exports = handle)이 정확하게 문제 : 누락 된 것을 바인딩에 필수입니다 자바 스크립트 :

exports = handlewindow.exports = handle을 의미한다 (또는 무엇이든 Node.js를하면 전역 객체로있다)

0

문제를 보는 또 다른 방법은 노드 모듈로드 할 수 방법에 대해 생각 : 내부 여기

function loadModule(module, exports) {

하면 모듈의 코드를 제공 코드가 exports 매개 변수를 (덮어 쓰는 경우

}

exports = handle)이 변경 사항은이 함수 외부에서 볼 수 없습니다. 그리고이 덮어 쓰기를 위해 module 객체를 사용할 수 있습니다.

내보내기가 함수 본문이있는 범위에서 볼 수있는 변수이면 문제가 발생하지 않습니다.

관련 문제