이 페이지 ( http://docs.nodejitsu.com/articles/getting-started/what-is-require )에서 "내보내기 오브젝트를 함수 또는 새 오브젝트로 설정하려면 다음을 수행해야합니다. module.exports 객체를 사용하십시오. "
내 질문은 이유입니다.
// right
module.exports = function () {
console.log("hello world")
}
// wrong
exports = function () {
console.log("hello world")
}
나는 console.logged 결과 ( result=require(example.js)
)와 첫 번째 [Function]
는 두 번째입니다 {}
.
그 이유를 설명해 주시겠습니까? Node.js의 module.exports vs exports 게시물을 읽었습니다 . 도움이되지만 그렇게 설계 한 이유는 설명하지 않습니다. 내보내기 참조가 직접 반환되면 문제가 발생합니까?
exports
예를 들어, github.com/tj/consolidate.js/blob/master/lib/consolidate.js ?
module.exports
하면 결코 잘못 exports
되지 않지만 기본 내 보낸 객체를 바꾸지 않는 경우, 즉 단순히 다음과 같은 속성을 첨부하는 경우 사용할 수 있습니다 var foo = require('foo').foo
. 이 foo
속성은 다음 exports.foo = ...
과 같이 내보낼 수 있습니다 : 물론 module.exports
. 개인적인 선택이지만 현재는 적절하게 사용 module.exports
하고 exports
있습니다.
module.exports
.