비동기 다음으로 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.func = function (){console.log('func')}
exports = {func:func} // 이 경우 따로 func 함수가 정의가 되어 있어야함.
exports = { func : function (){ console.log('func') } }
exports.a = b
'IT > Node.js' 카테고리의 다른 글
[Node.JS] Node.JS 업데이트 (0) | 2021.09.14 |
---|---|
[Node.js] 파일 업로드 - multer (0) | 2021.06.18 |
[Node.js] 동기(Synchronous) / 비동기(Asynchronous) async / await / Promise (0) | 2021.06.01 |
[Node.js] 배열의 N번째부터 M번째까지 합치는 함수 (0) | 2021.05.25 |
[Node.js] MQTT Client (0) | 2021.05.21 |