Dispatch.jsnode.js 모듈/내보내기 시스템 : 모듈을 함수로 내보낼 수 있습니까?
function handle(msg) {
....
}
exports = handle;
및 호출 index.js
var dispatch = require("./Dispatch);
dispatch("data");
에서 이와 비슷한 작업을하고 싶습니다.
Dispatch.jsnode.js 모듈/내보내기 시스템 : 모듈을 함수로 내보낼 수 있습니까?
function handle(msg) {
....
}
exports = handle;
및 호출 index.js
var dispatch = require("./Dispatch);
dispatch("data");
에서 이와 비슷한 작업을하고 싶습니다.
exports = handle
이 exports
불리는 로컬 변수를 생성한다. 이것은 module.exports
덮어 쓰기와 다릅니다.
module.exports = handle
이 모듈 범위에 살고 수출 변수를 덮어,이 후 require
읽을 수 있습니다.
브라우저에서 window["foo"]
과 foo
은 동일하지만 노드 module["foo"]
과 foo
은 노드에서 조금씩 다르게 작동합니다.
로컬 변수 범위 컨텍스트와 module
은 서로 다릅니다.
는 수행
function handle(msg) {
....
}
module.exports = handle;
을 그것을 당신이 원하는 방식으로 작동합니다.
이 문제 뒤에 문제 (exports.something
대 module.exports
대 exports
)는 가장이 문서에서 설명 :
http://www.alistapart.com/articles/getoutbindingsituations
첫 번째 버전 (exports = handle
)이 정확하게 문제 : 누락 된 것을 바인딩에 필수입니다 자바 스크립트 :
exports = handle
는 window.exports = handle
을 의미한다 (또는 무엇이든 Node.js를하면 전역 객체로있다)
문제를 보는 또 다른 방법은 노드 모듈로드 할 수 방법에 대해 생각 : 내부 여기
function loadModule(module, exports) {
하면 모듈의 코드를 제공 코드가 exports
매개 변수를 (덮어 쓰는 경우
}
exports = handle
)이 변경 사항은이 함수 외부에서 볼 수 없습니다. 그리고이 덮어 쓰기를 위해 module
객체를 사용할 수 있습니다.
내보내기가 함수 본문이있는 범위에서 볼 수있는 변수이면 문제가 발생하지 않습니다.
또는 module.exports = function (msg) {} – Tom