코드를 분리하여 관리하기 위한 방법이다.
프로젝트가 큰 경우 기능에 맞게 코드를 분리하여 관리하는 것이 필요하기 때문이다.
Node.js는 기본적으로 CommonJs방식을 따르며 모듈 단위로 각 기능을 분할 할 수 있다. 모듈은 파일과 1대1의 대응 관계를 가지며 하나의 모듈은 자신만의 독립적인 실행 영역(Scope)를 가지게 된다. 따라서 클라이언트 사이드 자바스크립트와는 달리 전역변수의 중복 문제가 발생하지 않는다.
모듈은 module.exports 또는 exports객체를 통해 정의하고 외부로 공개하고, 공개된 모듈은 require함수를 사용하여 import 한다.
exports 객체로 모듈 만들기
: 여러개의 프로퍼티 또는 메소드를 정의 할 수 있다
//students.js 작성
const name = 'meg';
const age = 6;
exports.name = name;
extports.age = age;
//app.js 모듈 사용
const student = require('./students')
//student출력값 { name: ‘meg', age: 6 }
module.exports로 모듈 만들기
: 하나의 값(원시타입, 함수, 객체)를 할당하여 작성한다
//add.js 작성
module.exports = (a,b) => {
return a+b;
// app.js 모듈 사용
const add = require('./add');
const result = add(1,2);
console.log(result); // 3출력
//calc.js 작성
module.exports = {
add(a, b){
return a+b
},
minus(a, b){
return a-b
};
//app js 모듈 사용
const calc = require('./calc');
const result = calc.add(1,2)
console.log(result) // 3출력
require 사용
: require 함수로 모듈을 로드한다
const dayjs= require('dayjs');
console.log(dayjs());
const myModule= require('./my-module');
console.log(myModule);
3.json 파일
object로 자동 파싱된다
// my-data.json을 가지고 있음
const myData = require('./my-data');
console.log(myData);