모듈은 자바스크립트파일 단위로 분리된 코드
여기서 자바스크립트파일은 특정한 기능을 가진 여러 개의 함수와 변수들으 집합이다.
브라우저 이외의 환경에서 모듈을 사용할 수 있도록 고안된 명세, 설정을 따로 추가하지 않은 이상, Node.js에서는 CommonJS를 기본으로 사용.
CommonJS는 전역 스코프에 정의 되어있는 require함수로 대표된다.
require함수는 경로 혹은 문자열을 가지고 내부 알고리즘을 통해 모듈을 가져오고 종속성을 처리한다.
export
명령어를 변수나 함수 앞에 붙이면 외부 모듈에서 해당 변수나 함수에 접근가능.import
, require
명령어를 사용하면 외부 모듈의 기능을 가져올 수있다.2가지의 인자를 입력받았을 때 값을 더해주는 함수를 생성.( Math.js )
// 값을 더하는 함수를 Module로서 밖으로 보내준 다음 run.js에서
// 그 모듈이 실행되게끔 만들어보기
function add(a,b){
return a + b;
}
그리고 작성한 함수를 다른 모듈로 내보내주기 위해 하단에 코드를 추가( math.js )
// add함수를 밖으로 보내주기 함수 그자체를 내보내준다
module.exports = add;
// 모듈을 호출했을 때, add 키 값에는 (a,b){return a + b;} 익명함수가 할달되는 방법
exports.add = function(a,b){
return a + b;
}
// 모듈을 호출했을 때 add 키 값에는 add 함수가 들어가는 방법이다.
module.exports = {add : add};
run.js에서 불러들인 add함수를 사용하도록 작성
const add = require("./math.js")
// math.js에서 밖으로 보낸 add함수 모듈을 가져온다
console.log(add(10,30)); //40 -> 정상적으로 잘 add함수를 잘 불러옴
//export로 하나씩 보낸것을 받았을때는 객체로 받기 때문에
console.log(add.add(10,30));
//==============================================================
// 객체구조분해할당을 통해서 간략하게 사용가능
const {add} = require("./math.js")
console.log(add(10,30));