"외부에 영향을 받지 않는(독립된), 재사용 가능한 코드의 묶음"
쉽게 말해서 필요한 함수들의 집합이라는 뜻인데, 좋은 예시가 있다.
python에서 import명령어를 써서 가져오는 것들이 전부 module이다.
module을 사용하는 방법은 다음 두 단계로 나뉜다.
1. require
2. exports
// 현재 파일명 : gomao.js //
사용법1var gomao = function(){ console.log("gomao!") }; module.exports = { gomao }module.exports는 객체가 기본값이고, 위와 같이 객체로 사용 가능하다.
위와 같이 함수를 미리 선언하고 exports 해줄 수 있다.
사용법2module.exports = { gomao : () => console.log("gomao!") }module.exports 객체 안에 직접 함수를 선언할 수도 있다.
사용법3exports.gomao = () => console.log("gomao!")마지막으로, 함수 하나하나를 직접 exports 해줄 수도 있다.
이렇게 gomao.js 파일에서 exports 작업을 해주면.....
사용법const test = require("./gomao.js"); const test2 = require("./gomgom.js"); const { cutehane } = require("./cutehane.js"); console.log(test.gomao()); console.log(test2.gomgom()); console.log(cutehane());실행 방법은 위와 같다.
실행 결과는 아래와 같다.
모듈 사용법 정리
각
modulefile에서 선언해주고exports해준 함수들을 실행할 file에서
require메서드를 사용해서 새로운 변수에 함수를 저장해주면,
test.gomao(),test.gomgom()와 같이 함수를 사용 가능하다.원래 함수명을
{}객체에 담아require메서드를 사용하면,
modulefile에서 선언한 이름 그대로cutehane()로 사용 가능하다.
require('./my-module')
만약 my-module이 .js파일이면 해당 파일을 load (.js 생략 가능)
my-module이 디렉터리인 경우 my-module/index.js파일 load
require('./function_module')
function_module이 함수형 module인 경우, require 만으로 실행되지 않고,
이후에function_module()와 같이 필요 시점에 실행시켜줘야 한다.
require('./my-data')
my-data파일이 json파일인 경우, .json을 생략해줘도 된다.위에 언급 하였지만,
여러번 실행해야 할 module은 함수형 module로 선언해야 한다.
뜬금 없지만, 이 시점에서 궁금한 사람들이 있을 것이다.
대체 gomao는 뭐고, gomgom은 뭐고, cutehane는 뭐란 말인가?
잠깐 짚고 넘어가려 한다.
ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
아무튼 이런 방법으로 module을 만들고 호출하여 사용할 수 있다.
다음 포스팅에서는 Node.js의 내장 module에 대해 다뤄보려 한다.