모듈은 주요 어플리케이션을 구조화하기 위한 부품이다. 코드 베이스를 개별적으로 개발 및 테스트가 가능한 작은 유닛으로 나누게 해 준다.
Node.js에는 두 가지 모듈 시스템을 사용하고 있다.
이에 대하여 논하여 본다.
모듈 시스템이 가지는 장점을 이야기해 보면 다음과 같다.
모듈과 모듈 시스템은 서로 다르다.
모듈 시스템은 프로젝트 안에서 모듈들을 정의하고 사용할 수 있도록 해 주는 문법 그 자체이다.
모듈은 실제 소프트웨어 유닛들을 의미한다.
브라우저에서는 <script> 태그를 사용하여 여러 파일의 코드들(모듈)을 임포트하여 사용할 수 있다. 초기에는 이런 시스템으로도 충분했지만, 시간이 지날수록 여러 프레임워크와 라이브러리들을 더욱 많이 사용하게 되면서 AMD(Asynchronous Module Definition)과 UMD(Universal Module Definition)가 나오게 된다.