[3강~5강] node.js 전역 객체, 기본 모듈, 이벤트
3강 node.js 전역 객체
node.js에는 최상위 객체로 window 객체가 아닌 다른 전역 객체들을 가지고 있음(윈도우 어플리케이션 상에서 돌아가지 않으므로)
전역 객체는 말그대로 프로그램 전역에서 사용할 수 있는 객체를 의미함
이와 함께 전역 변수도 존재함
전역 변수
- __filename
- 해당 파일의 경로 + 파일 이름을 저장
- __dirname
- 해당 파일의 경로를 저장
- 사용법
- node.basic.js
1
2console.log("filename: ", __filename);
console.log("dirname: ", __dirname); - result
1
2
3$ node node.basic.js
> /usr/bin/node_ex/node.basic.js
> /usr/bin/node_ex
- node.basic.js
- __filename
전역 객체
- console
- node.js console 화면을 다루는 객체
- 관련 메소드에는 log(), time(), timeEnd() 가 있음
- log(): 출력 함수, 문법은 C 언어와 동일
- time(): 시간 측정 시작
- timeEnd(): 시간 측정 종료
- 사용 예제
- node.basic.js
1
2
3
4
5console.time("alpha");
console.log("%d + %d = %d", 67, 123, 190);
console.log("hihi");
console.log("My JSON: %j", { name: "David" });
console.timeEnd("alpha"); - result
1
2
3
4
5$ node node.basic.js
> 67 + 123 = 190
> hihi
> { 'name': 'David' }
> alpha: 2.7ms (depends on your PC)
- node.basic.js
- process
- 프로그램의 정보를 나타내는 객체, nodejs만이 가진 특징
- 객체의 각 속성들과 메소드들은 다음과 같음
- argv: 실행 매개변수를 나타냄
- env: 컴퓨터 환경 정보를 나타냄
- version: nodejs 버젼을 나타냄
- versions: nodejs에 종속된 프로그램의 버젼을 나타냄
- arch: 프로세서의 아키텍쳐를 나타냄
- platform: 플랫폼을 나타냄
- exit(0): 프로그램을 종료시키는 메소드
- memoryUsage(): 메모리 사용 정보 객체를 리턴하는 메소드
- uptime(): 현 프로그램이 실행된 시간을 리턴하는 메소드
- 사용 예제(argv, exit())
- node.process.js
1
2
3
4
5
6
7
8
9process.argv.forEach(function(item, index) {
console.log(index + ":" + typeof item + ":", item);
if (item === "--exit") {
var exitTime = Number(process.argv[index + 1]);
setTimeout(function() {
process.exit();
}, exitTime);
}
}); - result
1
2
3
40:string: /usr/local/bin/node
1:string: /Users/taebbong/Desktop/node_ex/node.process.js
2:string: --exit
3:string: 10000 - 결과 분석
- 프로그램이 실행되면 해당 프로세스의 메타데이터(argv) 정보가 존재하게 되는데, 이를 하나하나 파싱한 것
- 그렇게 하나하나 출력하다가 –exit이라는 string을 발견하면 일정시간을 기다렸다가 종료되도록 만든 것
- node.process.js
- export
- 모듈 만들어서 불러오기
- 사용 예제
- module.js
1
2
3
4
5export.abs = function(number){
if(number > 0)
return number;
return -number;
}; - main.js
1
2var module = require("./module.js");
console.log("abs(-273) = %d", module.abs(-273)); - result
1
2$ node main.js
> abs(-273) = 273
- module.js
- console
4강 node.js 기본 모듈
기본 내장 모듈을 공부하려면 node.js API 문서를 보는 것이 좋을 것
이제 각 기본 내장 모듈에 대해 알아보자
os
- os에 관한 메소드, 객체가 존재
- 개념보다는 문서를 보고 활용함에 집중
사용 예제
- node.os.js
1
2
3
4var os = require("os");
console.log(os.hostname());
console.log(os.type());
console.log(os.networkInterfaces()); - result
1
2
3
4
5
6
7
8USERNAME.local
Darwin
lo0:
[ { address: '127.0.0.1',
netmask: '255.0.0.0',
family: 'IPv4',
mac: '00:00:00:00:00:00',
} ... ]
- node.os.js
url
- url과 관련된 내장 모듈
사용 예제
- node.url.js
1
2
3var url = require("url");
var parsedObject = url.parse("https://taebbong.github.io");
console.log(parsedObject); - result
1
2
3
4
5
6
7
8
9
10
11
12
13Url {
protocol: 'http:',
slashes: true,
auth: null,
host: 'taebbong.github.io',
port: null,
hostname: 'taebbong.github.io',
hash: null,
search: null,
query: null,
pathname: '/',
path: '/',
href: 'http://taebbong.github.io/' }
- node.url.js
crypto
- 암호화, 해시 생성 모듈
file system
- 파일 관리, 읽고 쓰기 가능
[3강~5강] node.js 전역 객체, 기본 모듈, 이벤트