[Node.js] 모듈화
여기서는 node.js에서 코드를 모듈화 하여 코드 재사용하고 단일 소스 코드 파일의 크기를 줄이는 방법을 간단히 설명한다.
우선 기본적인 형태는 다음과 같다.
// module.exports는 require 호출시 반환되는 오브젝트에 대응된다.
// middle이 현재 소스파일에서 분리할 오브젝트이다.
var middle = module.exports = {
go:function() {
console.log(‘Process’);
}
};
middle.go();
이것을 파일로 나누면 다음과 같이 된다.
main.js
var middle = require(‘./middle’); // js 확장자를 경우에 따라 생략하는 경우도 있음.
middle.go();
middle.js
module.exports = {
go:function() {
console.log(‘Process’);
}
};
위와 같은 방식으로 기본적인 모듈화가 가능하다. 위와 같이 작성하여 main.js를 실행하면 화면에 Process가 뜨게 된다.
그리고 개인적으로 추천하진 않지만 jsp 모델1이나 php, asp등에서 볼 수 있었던 include와 같은 방식으로 소스 파일을 나누는 방법도 있다. 이는 다른 소스 파일의 내용을 그대로 본 소스 파일에 포함시키는 것을 말한다.
다음과 같이 구현이 가능하다.
var fs = require(‘fs’); // fs모듈 가져오기. npm install 명령이 선행되어야 하는 모듈임.
…
eval(fs.readFileSync(‘가져올파일.js’)+”);
…
그래서 만약 다음과 같은 코드가 있다면…
main.js
var fs = require(‘fs’);
var i = 0;
console.log(‘Process’ + (++i));
eval(fs.readFileSync(‘middle.js’)+”);
console.log(‘Process’ + (++i));
middle.js
console.log(‘Process’ + (++i));
실행결과는 다음과 같다.
Process1
Process2
Process3