Node.js 모듈 정리

버건디·2022년 8월 24일
0

Node.js

목록 보기
2/15
post-thumbnail

🔍 모듈이란?

모듈이란 특정한 기능을 하는 함수와 변수들의 집합이다.

예를 들어 자바스크립트에서 함수를 만들어서 그 함수를 필요할때마다 재사용 하듯이, 모듈을 만들어 놓으면

필요할때마다 여러 프로그램에 그 모듈을 불러와서 재사용할 수가 있다.

보통 파일 하나하나가 모듈이 된다.


🔍 module 객체 이용해서 모듈 만들기

//a.js 파일

const oneNum = 1;
const tenNum = 10;

module.exports = {oneNum, tenNum};

//b.js 파일

const {oneNum, tenNum} = require('./a.js'); // 같은 디렉토리에 있다고 가정

console.log(oneNum,tenNum); // 1, 10

이런식으로 모듈을 불러오는 require() 함수 안에 불러올 모듈의 경로를 적어준다.

그런다면 a.js 안에 있는 내용들을 자유롭게 사용할 수가 있다.


🔍 exports 객체 이용해서 모듈 만들기


//a.js 파일

exports.oneNum = 1;
exports.tenNum = 10;

이렇게 exports 객체에 위와 같이 값을 대입해도 위에 module.exports를 사용한거와 동일하게 동작한다.

그 이유는 module.exports와 exports 객체가 결국 같은 객체를 참조하기 때문이다.

사진 참조 링크

  • module.exports 는 빈 객체를 참조한다.

  • exports 는 module.exports 를 참조한다.

  • 최종적으로 return 되는 값은 module.exports 이다.


module.exports 에는 어떤 값이든 대입해도 상관없지만, exports 에는 반드시 객체처럼 속성명과 속성 값을 대입해야한다.

exports에 다른 값을 대입한다면 참조 관계가 끊겨버려 모듈로 기능 할 수가 없다.

exports를 사용할 때는 객체만 사용할 수 있으므로 module.exports에 함수를 대입한 경우에는

exports로 바꿀 수가 없다.

❗️ exports와 module.exports는 참조 관계에 있으므로 한 모듈에 exports 객체와 module.exports 를 동시에

사용하지 않는 것이 좋다 ❗️

profile
https://brgndy.me/ 로 옮기는 중입니다 :)

0개의 댓글