'module export'에 해당되는 글 1건

node.js의 환경에서 mvc 패턴을 구현하다 보면 module.exports와 exports를 자주 접하게 된다.

그 차이에 대해 알아보자.


아래 코드를 보자. 

1
2
3
4
5
6
7
8
9
10
// greetings.js
// var exports = module.exports = {};
         
exports.sayHelloInEnglish = function() {
  return "HELLO";
};
    
exports.sayHelloInSpanish = function() {
  return "Hola";
};

In the code above, we could have replaced exports with module.exports and achieved the same result. If this seems confusing, remember that exports and module.exports reference the same object.

위의 설명처럼 exports는 개개의 function마다 적용되고 결국 module.exports와 결과는 같다.

This is the current value of module.exports:

1
2
3
4
5
6
7
8
9
module.exports = {
  sayHelloInEnglish: function() {
    return "HELLO";
  },
        
  sayHelloInSpanish: function() {
    return "Hola";
  }
};

위 코드와 같이 module.exports는 여러 function을 묶어서 정의하게 된다.


지금 껏 node.js를 사용해오면서 require()를 쓸 때 내부 원리를 모르고 단순히 모듈을 import 하였는데, require()도 module.export 방식을 이용해서 module을 import 하는 것 이었다.

var require = function(path) {
 
  // ...
 
  return module.exports;
};

위와 같은 방식이다.



블로그 이미지

종환 Revolutionist-JongHwan

github.com/alciakng 항상 겸손하자.

댓글을 달아 주세요