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() 메소드를 호출하고 있는 것을 확인할 수 있다.