CommonJS 모듈 시스템 [ node.js 교과서 ]
2023. 4. 10. 15:20ㆍnode.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 |