module = library = dependency = pacakage, 언어나 프레임 워크마다 다르게 칭하지만 다 같은 말이다. nodejs를 사용할때는 module을 잘알아야 한단다! 오늘은 module을 이해해 보자!
간단한 예제로 덧샘모듈과 곱샘모듈을 만들어보자.
// add.js
const add = (a, b) => a + b;
module.exports = add; // (add.js파일 === add 모듈)을 불러 사용하면 add함수를 사용할수 있다.
// mult.js
const mult = (a, b) => a * b;
module.exports = mult;
// sample.js
const name = hwang;
const randomAge = (num) => {
return Math.floor(Math.random()*num);
}
// 여러개의 값을 exports 해야한다면 객체에 담아 보낸다.
module.exports = {
name : name,
// key와 value가 같다면 key만 입력해 된다.
randomAge // randomAge : randomAge와 같음
}
위의 코드와 같이 객체(object) 안에 key & value로 담아 보낼 수 있으며, key & value가 같다면 value없이 key만 내보내도 된다.
객체를 담아 보내는 것이 복잡하다면
module.exports.변수명;
module.exports.함수명;
과 같은 방법으로 내보낼 수 있다. module.exports
를 통해 내보내는 방식은 여러 방법이 있더라도 사용방법은 동일하다. 이제
module.exports
를 통해 함수를 다른파일에서 사용할 수 있게 되었으니 사용해보자.
const add = require('경로/add.js');
const mult = require('경로/mult.js');
console.log(add(1,2), mult(1,2); // 콘솔에 3, 2가 력된다.
// 불러온 모듈이 2개이상의 값을 내보내고있다.
const sample = require('경로/파일명.js');
// 모듈을 불러온 변수에 객체형으로 담긴다. 속성과 메서드 쓰듯 사용할 수 있다.
console.log(sample.name); // hwang 출력
console.log(sample.randomAge(10)); // 0~9사이 랜덤 수 출력