바르고 뜨겁게
[NodeJS] 내장객체 - global, __filename, __dirname, process, console, 타이머 본문
자바스크립트/Node Js
[NodeJS] 내장객체 - global, __filename, __dirname, process, console, 타이머
RightHot 2018. 12. 14. 01:06global 내장객체
기존 환경에는 window
라는 전역객체가 있어서 window.setTimeout
등을 사용가능했음.
노드에는 window
대신 global
이 존재.
global 객체는 전체 공유가 됨.
// globalA.js
module.exports = () => global.message;
// globalB.js
const A = require('./globalA');
global.message = '안녕하세요';
console.log(A());
안녕하세요
__filename, __dirname, process
console.log('파일 경로: ',__filename);
console.log('파일이 위치한 경로: ',__dirname);
// process 객체에는 현재 실행중인 노트 프로그램 정보가 들어있다.
console.log('설치된 노드버전: ',process.version);
console.log('실행 아키텍쳐(x64,x86): ',process.arch);
console.log('실행 OS: ',process.platform);
console.log('프로세스 ID (id로 종료가능): ',process.pid);
console.log('노드의 실행시간: ',process.uptime());
console.log('노드의 실행위치: ',process.cwd());
console.log('노드가 설치된 경로: ',process.exePath);
console.log('CPU 사용량: ',process.cpuUsage());
// process.exit() 프로그램 종료
파일 경로: D:\포트폴리오\_Study\Inflearn_nodeJS-Textbook\globalM.js
파일이 위치한 경로: D:\포트폴리오\_Study\Inflearn_nodeJS-Textbook
설치된 노드버전: v8.9.3
실행 아키텍쳐(x64,x86): x64
실행 OS: win32
프로세스 ID (id로 종료가능): 53908
노드의 실행시간: 0.162
노드의 실행위치: D:\포트폴리오\_Study\Inflearn_nodeJS-Textbook
노드가 설치된 경로: undefined
CPU 사용량: { user: 31000, system: 140000 }
console 내장 객체
// console.js
const string = 'abc';
const number = 1;
const boolean = true;
const obj = {
outside:{
key:' 뎁스1 ',
inside: {
key:' 뎁스2 '
}
}
};
// time과 timeEnd 의 인자값이 같아야됨
console.time('전체 시간');
console.log('일반 로그--------');
console.log(string, number, boolean);
console.error('에러메시지');
// 객체 전용 로그 (컬러 true 하면 알록달록 , depth 조정가능)
console.dir(obj, {colors: false, depth: 2});
console.dir(obj, { colors: true, depth: 1});
console.time('시간 측정');
for(let i=0; i < 100000; i++){
continue;
}
console.timeEnd('시간 측정');
function b(){
console.trace('에러 위치 추적(어떤함수를 거쳐서 호출되는지 확인)');
}
function a(){
b();
}
a();
console.timeEnd('전체 시간');
PS D:\포트폴리오\_Study\Inflearn_nodeJS-Textbook> node console
일반 로그--------
abc 1 true
에러메시지
{ outside: { key: ' 뎁스1 ', inside: { key: ' 뎁스2 ' } } }
{ outside: { key: ' 뎁스1 ', inside: [Object] } }
시간 측정: 2.965ms
Trace: 에러 위치 추적
at b (D:\포트폴리오\_Study\Inflearn_nodeJS-Textbook\console.js:32:13)
at a (D:\포트폴리오\_Study\Inflearn_nodeJS-Textbook\console.js:36:5)
at Object.<anonymous> (D:\포트폴리오\_Study\Inflearn_nodeJS-Textbook\console.js:38:1)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Function.Module.runMain (module.js:676:10)
at startup (bootstrap_node.js:187:16)
전체 시간: 7.808ms
타이머 내장객체 (setTimeout, setInterval, setImmediate)
const timeout = setTimeout(() => {
console.log('1.5초 후 실행')
}, 1500);
const interval = setInterval(() => {
console.log('1초마다 실행');
}, 1000);
const timeout2 = setTimeout(() => {
console.log('실행되지 않습니다')
}, 3000);
setTimeout(()=>{
clearTimeout(timeout2);
clearInterval(interval);
}, 2500)
// clearTimeout(timeout);
// clearInterval(interval);
// 바로 이벤트루프로 보내고싶을땐 `Immediate` 사용
const im = setImmediate(() => console.log('즉시 실행 setImmediate'));
//clearImmediate(im);
즉시 실행 setImmediate
1초마다 실행
1.5초 후 실행
1초마다 실행
'자바스크립트 > Node Js' 카테고리의 다른 글
[NodeJS] crypto 양방향 암호화(cipher) (0) | 2018.12.18 |
---|---|
[NodeJS] 모듈 (OS 모듈, path 모듈, url 모듈, querystring 모듈) (0) | 2018.12.18 |
[NodeJS] 노드 모듈 시스템 - 다른 JS 변수 참조 (0) | 2018.12.13 |
[NodeJS] 이벤트 루프 (0) | 2018.12.13 |
[NodeJS] 노드란 무엇인가? (0) | 2018.12.13 |
Comments