Node.js의 기본 모듈1
주요 기본 모듈
프로세스 환경
- os, process, cluster
파일과 경로, URL
- fs, path, URL, querystring, stream
네트워크 모듈
- http, https, net, dgram, dns
전역 객체
전역 객체 (global)
- 별도의 모듈 로딩없이 사용
- global 모듈
- global.console.log()
- global 생략 가능
- console.log()
주요 전역 객체
- process
- console
- Buffer (클래스)
- require
- filename, dirname
- module
- exports
- Timeout 함수
전역 객체 : process
- 애플리케이션 프로세스 실행 정보 제공
- env : 애플리케이션 실행 환경
- version : Node.js 버전
- arch, platform : CPU와 플랫폼 정보
argv : 실행 명령 파라미터
이벤트
- exit : 애플리케이션 종료 이벤트
- beforeExit : 종료 되기 전에 발생하는 이벤트
- uncaughtException : 예외 처리되지 않은 예외 이벤트
- 함수
- exit : 애플리케이션 종료
- nextTick : 이벤트 루프 내 동작을 모두 실행 후 콜백 실행
타이머
타이머 함수
- 지연 동작 : setTimeout
- 반복 동작 : setInterval
Timeout
- 일정 시간 뒤 호출
- setTimeout(callback, delay, arg, …)
- clearTimeout()
- 파라미터
- callback : 함수 형태
- delay : 초(milli second)
- arg : callback 함수의 파라미터
예제 코드
1
2
3
4
5function sayHello(){
console.log('Hello World');
}
// 3초뒤 실행
setTimeout(sayHello, 3*1000);타이머 취소
1
2var t = setTimeout(sayHello, 10);
cleatTimeout(t);반복
- setInterval(callback, delay, arg, …)
- clearInterval()
예제 코드
1
2
3
4function sayGoodBye(who){
console.log('Good bye', who);
}
setInterval(sayGoodBye, 1*1000, 'Friend');
- 일정 시간 뒤 호출
콘솔 (Console)
콘솔 (Console)
- 로그 남기기
- 실행 시간 측정
로그 남기기
1
2
3
4console.log('log', 'log message');
console.log('info', 'info message');
console.log('warn', 'warn message');
console.log('error', 'error message');값 출력
1
2var intValue = 3;
console.log('intValue' + 3);객체형 출력
1
2
3
4
5
6var obj = {
name : 'IU',
job : 'Singer'
}
console.log('obj:' + obj); //+를 이용하면 object 타입으로 타입추론이 힘들다.
console.log('obj:', obj); //콤마를 이용하면 어떤 값이 들어있는지 잘 알 수 있다.
커스텀 콘솔
콘솔 타입 로딩
1
var Console = require('console').Console;
콘솔 객체 생성
1
new Console(stdout[, stderr])
파라미터 : 출력 스트림
- stdout : 표준 출력 스트림, info, log
- stderr : 에러 출력, warn, error
파일로 로그 남기는 커스텀 콘솔
1
2
3
4
5
6// info, log 출력
var output = fs.createWriteStream('./stdout.log');
// error, 경고 출력
var errorOutput = fs.createWriteStream('./stderr.log');
// 화면 뿐만 아니라 파일로도 로그 남기기 가능
var logger = new Console(output, errorOutput);
실행 시간 측정
- 시작 시점 설정하기
- console.time(TIMER_NAME)
종료 시점, 걸린 시간 계산해서 출력
- console.timeEnd(TIMER_NAME)
예제 코드
1
2
3
4
5
6
7
8//시간 측정 시작
console.time('SUM');
var sum = 0;
for(var i = 1; i<10000; i++){
sum += i;
}
//시간 측정 종료
console.timeEnd('SUM');
- 시작 시점 설정하기
유틸리티
모듈 로딩
- var util = require(‘util’);
주요 기능
- 문자열 포맷
- 상속
포멧
- 문자열 포멧
- util.format(format[, …])
- placeholder
- %s : String
- %d : Number
- %j : JSON
- 문자열 포멧
예제 코드
1
2
3
4var str1 = util.format('%d + %d = %d', 1, 2, (1+2));
// 1 + 2 = 3
var str2 = util.format('%s %s', 'Hello', 'World');
// Hello World상속
- 상속 : inherits
- util.inherits(constructor, superConstructor);
- 사용 방법
- util.inherits(ChildClassFunction, ParentClassFunction);
예제 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22var util = require('util');
function Parent(){
}
Parent.prototype.sayHello = function(){
console.log('Hello World, from Parent!');
}
var obj = new Parent();
obj.sayHello();
function Child(){
}
// Child가 Parent를 상속 받음
util.inherits(Child, Parent);
var obj2 = new Child();
obj2.sayHello();
- 상속 : inherits