외장 모듈은 내장 모듈이 지원하지 않는 기능을, 다른 사람이 만들어 인터넷 상에 업로드 해 놓은 모듈이다.

내장 모듈의 한계에 부딪혔다면 외장 모듈을 사용해 보자.

외장 모듈 설치하기

npm install [모듈명]

해당 명령어로 외장 모듈의 설치가 가능하다. 외장 모듈은 해당 프로젝트 디렉토리의 node_modules 라는 디렉토리에 저장된다. npm install 명령어를 통해 설치된 외장 모듈은 해당 프로젝트에서만 사용이 가능한 것이다.

그렇다면 새로운 프로젝트마다 외장 모듈을 추가로 계속 설치해야 하는가? 그것은 또 아니다. Nodejs 는 외장 모듈을 호출할 때, 먼저 자기 자신의 디렉토리에서 node_modules 디렉토리를 검색하고, 실패한 경우, 계속 상위 폴더로 이동하면서 node_modules 디렉토리를 검색한다.

한마디로 nodejs 서버의 최상위 폴더에 공통적으로 사용되는 외장모듈을 설치해둔다면, 해당 서버에서는 공통적으로 외장 모듈의 사용이 가능하다.

외장 모듈 설치하기(2)

위의 방법 말고도 다른 방법으로 외장 모듈을 설치할 수 있다. 위의 방법이 빠른 설치를 보장한다면, 이번 설치 방법은 이식성, 확장성이 좋은 설치 방법이라고 볼 수 있다.

물리적으로 서버 PC 가 옮겨졌거나, 프로젝트를 옮긴 경우, 이미 설치했던 외장 모듈을 다시 설치해야 하는 번거로움이 있다. 이럴 경우, 오리진 서버에서 외장 모듈의 설치 정보를 가져올 수 있다면 편하리라 생각한다. package.json 은 그런 역할을 수행할 수 있다.

package.json 은 해당 프로젝트의 정보를 JSON 의 형태로 저장하고 있는데, 파일명에서 볼 수 있듯이 package(패키지 : 모듈들의 집합)의 설치 정보 또한 가지고 있다.

아무것도 없는 빈 디렉토리에 package.json 을 만들어 보자.

npm init

(이 명령어 뒤에 이런 저런 정보를 입력하라고 나오는데 name 을 제외한 모든 정보는 빈 값으로 되도 된다)

해당 명령어를 입력하면, 자동적으로 (아니면 본인이 입력한 정보에 의해) 생성된 정보를 담고 있는 package.json 파일이 생성 된다. 이제 이 package.json 파일에 현재 디렉토리(프로젝트)에 설치되어 있는 설치 정보를 담아야 한다.

npm install [모듈명] --save

이전의 설치 방법과 동일하다. 하지만 –save 옵션이 붙어 있음을 주의하라. 해당 명령어는 외장 모듈을 npm 을 통해 설치함과 동시에 package.json 파일에 해당 모듈의 정보를 입력하게 된다.

이런 방법을 통해 입력한 프로젝트의 외장 모듈의 정보를 다른 프로젝트에서 재설치 하고자 한다면 한번의 명령어로 가능하다.

npm install

모듈명을 입력하지 않은 해당 명령어는 디렉토리 내의 package.json 파일을 인식해서 해당 파일에 있는 모듈 정보대로 npm 을 통해 설치하게 된다.

외장 모듈 사용하기

외장 모듈의 해당 프로젝트에 성공적으로 설치되어 있다는 가정하에, 외장 모듈을 사용하는 방법은 내장 모듈과 동일하다. var 변수명 = require(‘모듈명’); 으로 불러와서, 해당 변수를 모듈 객체로 생각하고 사용하면 된다.

아래는 예제 소스 이다.

npm install nconf
vim test.js
var nconf = require('nconf');
 
nconf.env();
 
console.log('OS 환경 변수의 값 : %s', nconf.get('OS'));

(nconf 는 시스템 환경 변수에 접근할 수 있는 외장 모듈이다.)