노드에서 자주 사용하는 내장 객체에 대해 알아보겠습니다!
global
global은 브라우저의 window와 같은 전역 객체입니다. 따라서 모든 파일에서 접근 가능한 객체입니다. global은 생략할 수 있습니다.
// globalA.js
module.exports = () => global.message;
// globalB.js
const A = require('./globalA');
global.message = '안녕하세요';
console.log(A());
message는 global 객체이기 때문에 모든 파일에서 접근 가능한 것을 볼 수 있습니다.
타이머
다음 함수들은 타이머 기능을 제공하는 함수입니다.
- setTimeout(콜백함수, 밀리초) - 주어진 밀리초 이후에 콜백 함수 실행
- setInterval(콜백함수, 밀리초) - 주어진 밀리초마다 콜백 함수 반복 실행
- setImmediate(콜백함수) - 콜백함수 즉시 실행
const timeout = setTimeout(() => {
console.log('1.5초 후 실행');
}, 1500);
const interval = setInterval(() => {
console.log('1초마다 실행');
}, 1000);
const immediate = setImmediate(() => {
console.log('즉시 실행');
});
__filename, __dirname
현재 파일의 경로나 파일명을 알아야 할 때 자주 사용하는 키워드입니다.
- __filename - 현재 파일의 경로
- __dirname - 현재 파일이 담긴 디렉토리의 경로
console.log(__filename);
console.log(__dirname);
process
process는 현재 실행되고 있는 노드 프로세스에 대한 정보를 담고 있습니다. 자주 사용하는 것만 살펴보겠습니다.
1. process.env
process.env 를 입력하면 시스템의 환경변수들을 알 수 있습니다. 대표적인 환경 변수는 UV_THREADPOOL_SIZE=8 이 있습니다. 왼쪽이 환경 변수의 이름이고 오른쪽이 값입니다.
시스템 환경 변수 외에도 환경 변수를 만들어 사용할 수도 있습니다. 서버나 데이터베이스의 비밀번호를 코드에 직접 입력하는 것은 위험하므로 process.env 를 중요한 키를 저장하는 공간으로 사용합니다. 다음과 같이 사용할 수 있습니다.
// 환경변수
SECRET_ID='secret'
// 환경변수 사용
const secretId = process.env.SECRET_ID;
2. process.nextTick(콜백)
이벤트 루프가 다른 콜백 함수보다 nextTick의 콜백 함수를 우선으로 처리하도록 합니다.
setImmediate(() => {
console.log('immediate');
});
process.nextTick(() => {
console.log('nextTick');
});
3. process.exit(코드)
실행 중인 노드 프로세스를 종료합니다.
module, exports, require
var.js에 모듈을 만들어 외부에서 사용할 수 있도록 module.exports를 해줍니다. 모듈을 가져오고 싶을 때는 require(경로) 를 사용합니다. 모듈을 exports 할 때는 변수와 함수 모두 가능합니다.
// var.js
const odd = '홀수입니다';
const even = '짝수입니다';
module.exports = {
odd,
even,
};
// func.js
const { odd, even } = require('./var');
function checkOddOrEven(num) {
if (num % 2) { // 홀수면
return odd;
}
return even;
}
module.exports = checkOddOrEven;
// index.js
const { odd, even } = require('./var');
const checkNumber = require('./func');
function checkStringOddOrEven(str) {
if (str.length % 2) { // 홀수면
return odd;
}
return even;
}
console.log(checkNumber(10));
console.log(checkStringOddOrEven('hello'));
'Back-end > Node.js' 카테고리의 다른 글
[Node.js] 파일 시스템 모듈(fs), 이벤트 (0) | 2021.07.09 |
---|---|
[Node.js] 노드 내장 모듈 알아보기 (0) | 2021.07.07 |
[Node.js] Express 사용하여 홈페이지 구현 (CRUD) (0) | 2021.01.05 |
[Node.js] MySQL로 JOIN 사용하여 글 생성/수정 구현 (0) | 2020.12.31 |
[Node.js] MySQL로 글 생성/수정/삭제 구현 (0) | 2020.12.30 |