Node.js에서의 모듈은 JavaScript 라이브러리와 같은 존재로 생각할 수 있다.
한마디로 내 어플리케이션에 추가시키고 싶은 메소드(기능)들의 집합이라고 볼 수 있다.

빌트인 모듈(Built-in Module)

빌트인 모듈이란, 별도의 설치 없이도 기본적으로 Node.js 안에 구성되어 있고, 즉시 추가해서 사용할 수 있는 모듈들을 뜻한다. 빌트인 모듈 레퍼런스 : https://www.w3schools.com/nodejs/ref_modules.asp

모듈 추가, 사용해 보기

Node.js 프로그래밍에서 모듈을 추가하기 위해선, require() 메소드를 사용해야 한다.

var http = require('http');

이제 곧바로 HTTP 모듈을 코드 내에서 사용할 수 있게 되었다. 해당 모듈을 통해, HTTP 서버를 만들어보자.

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.end('Hello World!');
}).listen(8080);

http 객체에 담긴 모듈을 통해 createServer 메소드를 실행시키는 과정이다. 실제로 경로 설정등의 복잡한 설정은 제외하고 웹 서버가 구동되기 위한 최소한의 설정들만 마친 소스 코드이다. 위외 같은 방법으로 모듈을 추가하고, 추가한 모듈을 사용할 수 있다.

직접 모듈 생성해 보기

myfirstmodule.js

exports.myDateTime = function () {
    return Date();
};

exports 키워드는 외부에서 해당 메소드를 사용할 수 있도록 설정해주는 역할을 한다. 이제 같은 디렉토리 내에 새로운 js 파일을 만들어서 해당 모듈을 사용해 보자.

demo_module.js

var http = require('http');
var dt = require('./myfirstmodule');
 
http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write("The date and time are currently: " + dt.myDateTime());
    res.end();
}).listen(8080);

dt 객체에 위에서 생성했던 외부 모듈을 생성해서 대입했다. 6번줄에서 dt 객체의 myDateTime() 메소드를 호출하고 있는 것을 확인할 수 있다.