2011년 6월 17일 금요일

[node.js] 기본적인 모듈 코딩 방법

모듈이라고 했는데 그냥 기능에 맞게 함수를 여러 파일로 쪼게어서 쓸 때 그 파일들을 어떻게 불러들여 쓸 수 있는가에 대한 이야기. 정말 기본적인 것만 메모해야지.

require라는 명령으로 모듈을 로딩하는게 일반적인데 경로를 뭘로 주느냐에 따라 동작이 약간 다르다.
  • npm 등으로 설치한 로컬(local) 및 전역(global) 모듈은 그냥 모듈 이름만 줘서 로딩하면 된다. 로컬 모듈이라고 별도로 경로를 적어 줄 필요는 없더라. 예) var express = require('express')
  • 사용자가 모듈로 분리한 파일을 로딩할 때는 코딩 중인 스크립트 파일의 위치를 기준으로 적어줘야 한다. 예) var mylib = require('./mylib')

node.js에서 require 시에는 현재 처리중인 스크립트 파일의 위치를 기준으로 require하는 것 같다. 그래서 다른 경로에서 실행시킨 스크립트가 require를 해도 자기 디렉토리를 기준으로 사용자 모듈을 잘 찾는다.

모듈의 경우 그냥 함수를 정의해서 마구 쓰고 이걸 require해서 쓰면 될 줄 알았는데, 결론적으로 exports라는 곳에 명시를 해 줘야 다른 곳에서 사용이 가능해진다.
exports.somefunc = function() {
  // blah blah
}
위 내용을 somelib.js라는 파일 이름으로 같은 디렉토리에 저장했다고 치고, 이 파일을 require로 로딩해서 바로 쓰면 된다.
var somelib = require('./somelib');
somelib.somefunc();

node.js는 단순해서 좋다.