비동기 다음으로 exports라는 개념이 발목을 잡았다.

지금까지C나 JAVA에서는 include나 import를 하면 그 클래스나 함수, 변수들을 사용할 수 있었다. Node에선 require를 해도 그 변수나 함수를 사용하지 못했다. 

 

Node에서는 모듈에서 exports를 하지 않으면 그 변수나 함수를 사용하지 못하는 것이다.

 

구글링으로 알아본 결과 A라는 모듈을 require를 하면 해당 모듈의 module.exports를 return 한다고 보면 되는 것이다. 그러므로 A모듈에서 module.exports를 하지 않았다면 그 어떤 것도 참조할 수 가 없다.

 

아무튼 본론으로 넘어와서 module.exports를 사용함에 많은 방법이 있었다.

 

우선 module.exports와 exports가 있다. 이 둘의 차이점... 사실 없었다. 공식 문서를 보면 그저 module.exports의 더 짧은 버전... 즉 module 조차도 길었다고 생각했나보다... 아무튼 둘의 차이점은 성능이 아닌 그저 더 짧다는 것에 있다.

exports

Added in: v0.1.12

A reference to the module.exports that is shorter to type. See the section about the exports shortcut for details on when to use exports and when to use module.exports.

 

그렇다면 어떻게 사용하면 되는건가... 여기부터는 솔직히 쓰는 사람의 특성과 그 모듈의 특성에 따라 나뉘는 듯 하다.

 

아래 예를 들어 코드를 작성해봤다. 기호에 맞게 사용하면 될듯하다.

exports.func = function (){console.log('func')}

exports = {func:func}   // 이 경우 따로 func 함수가 정의가 되어 있어야함.

exports = { func : function (){ console.log('func') } }

exports.a = b

 

+ Recent posts