Common js(module.exports vs exports )

이건우·2021년 12월 13일
0

Node.js

목록 보기
2/4

노드 에선 모듈을 관리하는 방법중 하나이다.

(cf, 리액트에선 'import/export'가 그 기능을 담당한다.)

모든 모듈은 자신만의 독립적인 실행 영역이 있어야한다.

모듈의 정의는 전역객체는 exports 객체를 이용한다

모듈사용은 require 함수를 이용한다.

exports.foo = () =>{...};
exports.bar = () =>{...};
exports.foobar = () =>{...};

이런 함수를 아래와 같이 변형 할 수 있다.

<script>
var $ = require('jquery')
var foo = require('./js/foo');
var bar = require('./js/bar');
var foobar = require('./js/foobar');
</scrpit>

표현 방법이 2가지가 있어서 헷갈릴 수도 있다 .

module.exports vs exports

exports.anything =function(){
console.log('I am anything')
}
module.exports.anything = function(){
console.log('I am anything')
}

사실 둘이 표기상 별차이는없다. exports가 숏컷 상태이다. 그렇다면 섞어 써도될것인가 ?

섞어쓰면 안된다.. exports 는 module.exports 를 참조한다. 만약 이미, module.exports를 쓰고있는 상태에서 exports를 쓰게된다면 무시될것이다.

exports 가 편리하고 좋지만, 섞어쓰거나

만약 exports 에 객체를 할당해 준다면, 그 내용을 require하여 다른 js 파일에서 임포트를 하게된다면 그 값을 가져오지 못한다. (빈객체만 가져옴)

profile
내가 느낌만알고 한줄도 설명할줄 모른다면 '모르는 것'이다.

0개의 댓글