이제는 다른 사람이 만든 모듈을 사용하는 방법에 대해 알아보자.
앞에서 process.env 속성을 사용해서 OS 환경 변수를 확인했었다. 이 과정을 이번에는 모듈을 사용해서 확인해보자.
시스템 환경 변수를 확인하는 기능을 다른 사람이 모듈로 만들어 둔 것이 있는데, 우리는 그 모듈을 불러와 실행하면 된다.
이렇게 다른 사람이 만들어 둔 모듈을 '외장 모듈'이라고 한다.
시스템 환경 변수에 접근할 수 있는 모듈의 이름은 nconf이며, 이 모듈은 설정과 관련된 유용한 기능뿐 아니라,
시스템 환경 변수를 접근하는 기능도 포함하고 있다.
ch02_test6.js 파일을 만든 후 다음 코드를 입력해보자.
var nconf = require('nconf');
nconf.env();
console.log('OS 환경 변수의 값 : %s', nconf.get('OS'));
※ 방화벽에 막혀 있는 경우 프록시 설정이 필요할 수 있다.
npm 명령을 실행했을 때 'In most cases you are behind a proxy ...' 와 같은 메시지가 포함된 오류가 발생하는 경우도 있다.
이것은 방화벽에 막혀 있는 사내 인터넷을 사용하는 경우에 자주 발생한다. 이런 오류는 프록시 서정을 하면 해결될 수도 있다.
프록시 설정 방법은 다음과 같다.
(1) 프록시 서버의 호스트 이름과 포트를 확인한다.
아래 명령어를 입력하고 ESTABLISHED로 표시된 주소 중 프록시 서버가 있는지 확인한다.
"netstat"
(2) 아래 세 가지 npm 설정 명령을 실행한다.
(프록시 서버의 호스트 이름과 포트가 proxy.techtown.org:8080이라고 가정한 경우)
npm config set proxy http://proxy.techtown.org:8080
npm config set https-proxy http://proxy.techtown.org:8080
npm config set strict-ssl false
이제 명령 프롬프트 창에서 ch02_test6.js 파일을 실행하면 OS 환경 변수의 값을 확인할 수 있다.
※ npm으로 설치한 패키지는 NodeExample1\node_modules 폴더 안에 설치 되어있다.
위 그림과 같이 나오면 name: 질문에는 'node'로 입력하고 나머지는 계속 Enter를 눌러주자.
name 질문에 입력하는 값은 소문자로 된 영문 이름이면 된다. 그러면 마지막에 현재 폴더인 [NodeExample1]폴더 안에 package.json 파일이 만들어진다.
▲ 명령프롬프트 name의 질문에 적당한 이름을 넣고 엔터를 누르자!
{
"name": "nodeexample1",
"version": "1.0.0",
"description": "",
"main": "calc.js",
"dependencies": {
"nconf": "^0.10.0"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
▲ nconf 삭제
▲ nconf 재설치
이제 package.json 파일을 다시 열어보면 "dependencies" 속성이 추가된 것을 볼 수 있다.
이렇게 설치한 패키지의 정보가 모두 들어간 package.json 파일이 만들어졌다. 이 프로젝트에서 사용한 모듈을 다른 PC에서 그대로 사용하고 싶다면 package.json 파일만 다른 PC로 옮긴 후 다음 명령을 입력하면 그 안에 들어 있는 모든 패키지가 한꺼번에 설치된다.
명령어 : npm install
'Study > Node.js' 카테고리의 다른 글
[노드JS] 자바스크립트의 객체와 함수 (0) | 2019.03.10 |
---|---|
[노드JS] 간단한 내장 모듈 사용하기 (0) | 2019.03.10 |
[노드JS] module.exports로 메인 파일에 더하기 함수 호출 (0) | 2019.03.09 |
[노드JS] 더하기 함수를 모듈로 간단히 분리하기 (0) | 2019.03.09 |
[노드JS] 노드에서 모듈 사용하기 (0) | 2019.03.08 |