node 내장 객체 / 모듈
노드는 개발 지원을 위한 다양한 내장 객체와 모듈을 탑제하고 있다.
따로 설치 않더라도 바로 사용할 수 있다.
__filename, __dirname
process
- process 객체는 현재 실행되고 있는 노드 프로세스에 대한 정보를 담고 있는 객체 이다.
attribute
코드 |
설명 |
process.version |
설치된 노드의 버전 |
process.arch |
프로세서 아키텍처 정보 |
process.platform |
운영체제 플랫폼 정보 |
process.pid |
현재 프로세스의 아이디 |
process.execPath |
노드의 경로 |
process.env |
시스템 환경 변수 |
method
코드 |
설명 |
process.uptime() |
프로세스가 시작 된 후 흐른 시간(초) |
process.cwd() |
현재 프로세스가 실행되는 위치 |
process.cpuUsage() |
현재 CPU 사용량 |
process.nestTick(콜백) |
이벤트 루프가 다른 콜백 함수들 보다 nextTick의 콜백 함수를 우선 실행 처리 |
process.exit(코드) |
실행 중인 노드 프로세스 종료 |
os 모듈
- os 모듈은 실행 환경의 운영 체제에 대한 정보 접근하는 모듈입니다.
attribute
method
코드 |
설명 |
os.arch() |
프로세스 아키텍처 정보 |
os.platform() |
운영체제 플랫폼 정보 |
os.type() |
운영체제의 종류 |
os.uptime() |
운영체제 부팅 이후 흐른 시간(초) 출력 |
os.hostname() |
컴퓨터 이름 |
os.release() |
운영체제의 버전 |
os.homedir() |
홈 디렉토리 경로 |
os.tmpdir() |
임시 파일 저장 경로 |
os.cpus() |
컴퓨터 코어 정보 |
os.cpus().length |
컴퓨터 코어 개수 이지만 노드에서는 멀티 스레드 설정을 하지 않는다면 하나만 출력된다. |
os.freemem() |
사용 가능한 메모리 |
os.totalmem() |
전체 메모리 용량 |
path 모듈
- path 모듈은 개발 환경과 상관 없이 경로를 다루거나 파일 명 등을 쉽게 다룰수 있도록 지원하는 모듈이다.
- 윈도 :
C:\Users\ballboy
- POSIX :
/home/ballboy
attribute
코드 |
설명 |
path.sep |
경로의 구분자 (윈도: '', POSIX: '/') |
path.delimiter |
환경 변수의 구분자 (윈도: ';', POSIX: ':') |
method
코드 |
설명 |
path.dirname(경로) |
파일이 위치한 폴더 경로 |
path.extname(경로) |
파일의 확장자 |
path.basename(경로, 확장자) |
확장자를 포함한 파일의 이름 파일의 이름만 표시하고 싶다면 basename의 두번쨰 인수로 확자자를 넣는다. |
path.parse(경로) |
파일 경로를 root, dir, base, ext, name으로 분리 후 출력 |
path.format(경로) |
path.parse()한 객체를 합침 |
path.normalize(경로) |
'\', '/'를 혼용하여 사용 했을 경우 정상적인 경로로 변환 |
path.isAbsolute(경로) |
파일의 경로가 절대경로 인지 상대 경로 인지 확인 |
path.relative(기준 경로, 비교 경로) |
기준 경로에서 비교 경로로 가는 경로 출력 |
path.join(경로, ...) |
여러 인수를 넣으면 하나의 경로로 합침 |
path.resolve(경로, ...) |
path.join()과 비슷하나 '/'문자를 만나면 절대경로로 처리한다. |
url, querystring 모듈
- 인터넷 주소 조작 지원 모듈로 각각 URL을 파싱하거나 조작할 때, URL의 쿼리 문자열을 처리 할 때 사용한다.
url 모듈
new URL(url주소)
url.format(URL 객체)
주요 객체 속성
- protocol: 'http:', 'https:'
- host: 'ballboydev.github.io:8080'
- hostname: 'ballboydev.github.io'
- port: '8080'
- pathname: '/path/to/resource'
- query: 쿼리 문자열 또는 객체
- hash: target id
const url = require('url')
const { URL } = url
const obj = new URL('https://ballboydev.github.io:80/post/1.html')
console.log(obj.protocol)
console.log(obj.hostname)
console.log(obj.port)
querystring 모듈
url의 쿼리 문자열을 객체로 파싱하거나 반대로 객체를 문자열로 변환할때 사용
- querystring.parse(쿼리)
- url의 query부분을 자바스크립트 객체로 분해
- querystring.stringify(객체)