728x90

- 노드는 자바스크립트 코드를 모듈로 만들 수 있음
- 모듈: 특정한 기능을 하는 함수나 변수들의 집합
- 모듈로 만들면 여러 프로그램에서 재사용 가능
같은 폴더 내에 var.js, func.js, index.js 만들기
var.js
const odd = '홀수입니다';
const even = '짝수입니다';
module.exports = { //파일에서 한번만 넘겨줄 수 있다.
odd, //키와 값변수가 같아서 생략 odd : odd
even
};
/*
export default {
odd,
even
}
*/
func.js
//const value = require('./var');
const { odd, even } = require('./var'); //구조분해할당
//import { odd, even } from './var';
function checkOddOrEven(number){
if (number % 2){
return odd;
}else{
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;
}else{
return even;
}
}
console.log(checkNumber(10));
console.log(checkStringOddOrEven('hello'));

- 파일 끝에 module.exports로 모듈로 만들 값을 지정한다
- 다른 파일에서 require(파일 경로)로 그 모듈의 내용 가져올 수 있다.
- node index로 실행한다
- const { odd, even } 부분은 module.exports를 구조분해 할당한 것이다

- 자바스크립트 자체 모듈 시스템 문법이 생김(var.js, func.js 주석)
- 크게는 require 대신 import, module.exports 대신 export default를 쓰는 것으로 바뀌었다
- 아직 노드에서의 지원은 완벽하지 않음. mjs 확장자를 사용해야 한다.(레거시 코드가 남아있기 때문이다)
728x90
'Node > 노드 기능' 카테고리의 다른 글
| process (0) | 2022.07.23 |
|---|---|
| 모듈 심화, 순환 참조 (0) | 2022.07.23 |
| _filename, _dirname, exports와 this (0) | 2022.07.23 |
| Global과 콘솔, 타이머 (0) | 2022.07.23 |
| REPL와 js 파일 실행하기 (0) | 2022.07.23 |