Node.js의 전역 객체
[목차]
1. 전역 변수
변수명 | 설명 |
---|---|
__filename | 현재 실행중인 코드의 파일경로를 리턴한다. |
__dirname | 현재 실행중인 코드의 폴더 경로를 리턴한다. |
console.log('filename:', __filename);
console.log('dirname:', __dirname);
2. console 객체
메서드 이름 | 설명 |
---|---|
console.log() | 괄호 안의 내용을 출력한다. |
console.time(String TimeName) | TimeName의 이름으로 시간 측정을 시작한다. |
console.timeEnd(String TimeName) | TimeName의 이름으로 시간 측정을 종료한다. |
console.log() 메서드 안에서는 특수 문자를 이용해 문자열을 출력할 수 있다.
특수문자 | 설명 | 예시 |
---|---|---|
%d | 숫자 | console.log('Number : %d', 273); |
%s | 문자열 | console.log('String : %s', 'hi~'); |
%j | JSON | console.log('Json : %j', {name:'jabba'}); |
console.time()과 console.timeEnd()를 이용해 처리 시간을 체크할 수 있다.
// 시간 측정 시작
console.time('alpha');
var output = 1;
for (var i = 1; i<=10; i++) {
output *= i;
}
console.log("결과 : %d", output);
// 시간 측정 종료
console.timeEnd('alpha');
3. process 객체
프로그램과 관련된 정보를 나타내는 객체. 웹 브라우저에서 작동하는 JavaScript에서는 존재하지 않는다.
속성 이름 | 설명 |
---|---|
process.argv | 실행 매개변수를 나타낸다. |
process.env | 컴퓨터 환경과 관련된 정보를 나타낸다. |
process.version | Node.js 버전을 나타낸다. |
process.versions | Node.js와 종속된 프로그램 버전을 나타낸다. |
process.arch | 프로세서의 아키텍처를 나타낸다. |
process.platform | 플랫폼을 나타낸다. |
메서드 이름 | 설명 |
---|---|
process.exit([exitCode = 0]) | 프로그램을 종료한다. (대괄호 안은 생략가능, 생략시 exitCode = 0 |
process.memoryUsage() | 메모리 사용 정보 객체를 리턴한다. |
process.uptime() | 현재 프로그램이 실행된 시간을 리턴한다. |
먼저 process.argv 속성과 process.exit() 메서드를 살펴보자.
[node.process.js 파일 코드 : process.argv 속성과 process.exit() 메서드]
// process.argv :: 실행 매개변수를 나타낸다.
process.argv.forEach(function (item, index) {
// 콘솔에 출력한다.
console.log(index + ' : ' + typeof(item) + ' : ', item);
// 실행 매개변수에 --exit가 있을 때
if (item == '--exit') {
// 다음 실행 매개변수의 값을 숫자형으로 변환한다.
var exitTime = Number(process.argv[index + 1]);
// 콘솔에 입력한 일정 시간 후 프로그램을 종료한다.
setTimeout (function () {
process.exit();
}, exitTime);
}
});
[콘솔 : 명령어 입력]
$ node node.process.js --exit 10000
입력한 모든 명령어의 단위를 매개변수로 인식한다. node / node.process.js / --exit / 10000 과 같이 인식한다는 말씀.
각각 쪼개진 매개변수는 아래와 같이 인덱스 번호를 갖게 된다.
- item [node] :: index 0
- item [node.process.js] :: index 1
- item [--exit] :: index 2
- item [10000] :: index 3
[결과]
프로그램이 실행되고 각 매개변수의 인덱스 값과 타입, 그리고 값을 출력한다. 10초 후 프로세스가 종료된다.
0 : string : /usr/local/bin/node
1 : string : /Users/SMARTHINK_MBL13/nodejs/20170721-node/open_node/study.js
2 : string : --exit
3 : string : 10000
<10초 후 프로세스 종료>
4. exports 객체와 모듈
모듈(module) : 기능을 쉽게 사용하기 위해 메서드와 속성을 미리 정의해 모아 놓은 것.
Node.js는 모듈을 사용해 기능을 확장한다. 모듈을 생성할 때 exports 객체를 사용한다. exports 객체에 속성이나 메서드를 지정하는 것이다.
exports.변수명 = function(){};
[module.js 파일 코드]
// 절대값을 구하는 메서드
exports.abs = function (number) {
if (0 < number) {
return number;
} else {
return -number;
}
};
// 원의 넓이를 구하는 메서드
exports.circleArea = function (radius) {
return radius * radius * Math.PI;
};
[main.js 파일 코드]
require() 함수를 사용해 모듈을 추출한다. 모듈의 경로를 입력해야 한다.
require(String id);
// 모듈을 추출한다.
var module = require('./module.js');
// 모듈을 사용한다.
console.log('abs(-273) = %d', module.abs(-273));
console.log('circleArea(3) = %d', module.circleArea(3));
[결과]
$ node main.js
abs(-273) = 273
circleArea(3) = 28.274333882308138