CommonJS 모듈 시스템 [ node.js 교과서 ]

2023. 4. 10. 15:20node.js

본 게시글은 node.js 교과서 강의를 듣고 정리한 글입니다.

 

- 브라우저에서는 사용 불가

- 노드는 자바스크립트 코드를 모듈로 만들 수 있다.

   - 모듈 : 특정한 기능을 하는 함수나 변수들의 집합

- 모듈로 만들면 여러 프로그램에서 재사용 가능

 


만들어보기 

- 같은 폴더 내에 var.js, func.js, index.js 만들기

   - 파일 끝에 module.exports 로 모듈로 만들 값을 지정

   - 다른 파일에서 require(파일경로) 로 그 모듈의 내용을 가져올 수 있음

 

// var.js

const odd = "홀수입니다.";
const even = "짝수입니다.";

module.exports = {
  odd,
  even,
};
// func.js

const { odd, even } = require("./var");

function checkOddOrEven(num) {
  if (num % 2) {
    return odd;
  }
  return even;
}

module.exports = checkOddOrEven;
// index.js

const { odd, even } = require("./var");
const checkNumber = require("./func");

function checkStringOddOrEven(str) {
  if (str.length % 2) {
    return odd;
  }
  return even;
}

console.log(checkNumber(10));
console.log(checkStringOddOrEven("hello"));

터미널에 node index.js 실행

짝수입니다.
홀수입니다.

경로

 

./ 은 현재 있는 폴더

../ 은 부모폴더

../../ 은 조부모 폴더


exports

 

아래는 아까 사용했던 var.js 이다.

const odd = "홀수입니다.";
const even = "짝수입니다.";

exports.odd = odd;
exports.even = even;

// module.exports = {
//   odd,
//   even,
// };

- 이런식으로 모듈을 생략할 수 있다.

- 기본적으로 module.exports === exports 는 서로 같다. 그리고 기본적으로 객체이다.

- 한가지만 exports 하고 싶을 때는 module.exports 를 사용, 아닌 경우 두가지 방법 중 하나를 선택하면 된다.

- 다만 한 파일에 두가지 방법을 모두 사용하면 안된다.

'node.js' 카테고리의 다른 글

캐싱 , require, 순환참조 [ node.js 교과서 ]  (0) 2023.04.10
this [ node.js 교과서 ]  (0) 2023.04.10
node.js 를 알아보자 [ node.js 교과서 ]  (0) 2023.04.10
package.json [node.js 교과서]  (0) 2023.04.10
npm [ node.js 교과서 ]  (0) 2023.04.10