브라우저의 window와 같은 전역 객체
전역객체이므로 모든 파일에서 접근 가능
생략 가능 (global.require -> require, global.console -> console)
전역객체이므로 간단한 데이터를 파일끼리 공유할 때 사용하기도함
module.exports = () => global.message;
const A = require('./globalA');
global.message = '안녕하세요';
console.log(A());
실행결과
안녕하세요
globalA 모듈의 함수는 global.message 값을 반환하고,
globalB.js 에서는 global 객체에 속성명이 message인 값을 대입하고 globalA 모듈의 함수 호출
console.time(레이블) : time과 timeEnd 사이의 시간 측정
console.log(내용) : 로그 출력
console.error(에러 내용) : 에러 출력
console.dir(객체, 옵션) : 객체를 콘솔에 표시
console.trace(레이블) : 에러가 어디서 발생했는지 추적
setTimeout(콜백 함수, 밀리초) : 주어진 밀리초 이후에 콜백함수 실행
setInterval(콜백 함수, 밀리초) : 주어진 밀리초마다 콜백함수 반복
setImmdiate(콜백 함수) : 콜백 함수를 즉시 실행
clear+Timeout/Interval/Immdiate : 타이머 취소
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);
const immediate = setImmediate(() =>{
console.log('즉시 실행');
});
const immediate2 = setImmediate(() =>{
console.log('실행되지 않습니다.');
});
clearImmediate(immediate2);
filename : 현재 파일명
dirname : 파일 경로
process.version : 현재 설체된 노드의 버전
process.arch : 프로세서 아키텍처 정보
process.platform : 운영체제 플랫폼 정보
process.pid : 현재 프로세스 아이디
process.uptime() : 프로세스가 시작된 후 흐른 시간(초 단위)
process.cwd() : 현재 프로세스가 실행되는 위치
process.cpuUsage() : 현재 cpu 사용량
시스템의 환경 변수를 출력하며,
서비스의 중요한 키를 저장하는 공간으로 사용된다.
const secretId = process.env.SECRET_ID;
const secretCode = process.env.SECRET_CODE;
-> 비밀번호와 각종 API 코드를 다음과 같이 process.env
속성으로 대체하고, 값을 직접 넣어준다..
이벤트 루프가 다른 콜백 함수들보다 nextTick의 콜백 함수를
우선적으로 처리하도록 만들어준다.
setImmediate(() => {
console.log('immediate');
});
process.nextTick(() => {
console.log('nextTick');
});
setTimeout(() => {
console.log('timeout');
}, 0);
Promise.resolve().then(() => console.log('promise'));
실행결과
nextTick
promise
timeout
immediate
process.nextTick은 setImmediate나 setTimeout 보다 먼저 실행된다.
resolve된 Promise도 다른 콜백들보다 우선시되어 실행된다.
실행 중인 노드 프로세스를 종료한다. 서버에 사용하면 서버가 멈추므로, 서버에서는 거의 사용하지 않는다. (서버 외의 독립적인 프로그램에서 수동으로 노드를 멈추기 위해 사용)
let i=1;
setInterval(() => {
if (i===5){
console.log('종료!');
process.exit();
}
console.log(i);
i += 1;
},1000);
실행결과
1
2
3
4
종료!
i가 5가 되었을때 종료되는 코드
인자를 주지 않거나 0이면 정상종료, 1을 주면 비정상 종료
(만약 에러가 발생해서 종료하는 경우, 1을 넣어주면 됨)