[Node.js] 자주 사용되는 모듈
본 내용은 Node.js 교과서 개정2판을 보고 공부, 정리한 내용입니다.
node를 사용하면서 거의 필수적으로 사용되는 모듈들을 공부했다. 이 내용을 지금 전부 외우는 것은 비효율적이다. 어떤 내용이 있는지 정도만 훑어보았고, 이후에 필요할 때 손쉽게 찾아볼 수 있도록 정리해두는 것이 목적이다.
process
process 객체는 현재 실행되고 있는 노드 프로세스에 대한 정보를 담고 있다.
process.version
설치된 노드의 버전
process.arch
프로세서 아키텍쳐 정보
ex) x64, x86, aprm, ia32 등
process.platform
운영체제 플랫폼 정보
ex) win32, linux, darwin 등
process.pid
현재 실행중인 노드 프로세스의 아이디
process.uptime()
프로세스가 시작한 이후 현재까지 흐른 시간 (단위 : 초)
process.execPath
node.exe의 경로
ex) C:\Program Files\nodejs\node.exe
process.cwd()
현재 실행중인 노드 파일의 위치
process.cpuUsage()
현재 노드 프로세스의 cpu 사용량
os
os모듈은 운영체제의 정보를 가져올 수 있는 모듈이다.
os.arch()
process.arch와 동일
os.platform()
process.platform과 동일
os.type()
운영체제의 종류
ex) Windows_NT
os.uptime()
운영체제 부팅 이후 현재까지 흐른 시간
os.hostname()
컴퓨터의 이름
os.release()
운영체제 버전
os.homedir()
홈 디렉토리 경로
os.tmpdir()
임시 파일 저장 디렉토리 경로
os.cpus()
컴퓨터의 코어 정보
os.cpus().length 는 코어 개수를 보여준다.
os.freemem()
사용 가능한 메모리 용량
os.totalmem()
전체 메모리 용량
os.constant()
각종 에러, 신호에 대한 정보
ex) EADDRINUSE, ECONNRESET 등
path
폴더와 파일 경로를 쉽게 조작하도록 도와주는 모듈
대표적으로 windows, linux의 서로 다른 경로 delimiter를 운영체제의 영향 없이 node.js 코드가 동작할 수 있도록 해주는 역할을 한다.
(윈도우 타입 = ‘' , POSIX 타입 = ‘/’)
path.sep
경로의 구분자
윈도우는 ‘' , 리눅스는 ‘/’ 이다.
path.delimiter
환경 변수의 구분자
process.env.PATH에 사용되는 구분자이다.
윈도우는 ‘;’ , 리눅스는 ‘:’ 이다.
path.dirname(파일경로)
파일이 위치한 폴더 경로
path.extname(파일경로)
파일의 확장자
path.basename(파일경로, 확장자)
파일의 이름(확장자 포함)
파일의 이름만 표시하고 싶다면, 두 번째 파라미터를 주면 된다.
path.parse(파일경로)
주어진 파일 경로를 root, dir, base, ext, name 으로 분리한다.
path.format(객체)
path.parse() 의 결과로 나온 객체를 파라미터로 주면, 이를 파일 경로로 합쳐준다.
path.normalize(파일경로)
파일 경로 구분자를 여러 번 사용하거나 혼용했을 때, 운영체제에 맞는 구분자로 정상화한 파일 경로를 반환
path.isAbsolute(파일경로)
파일의 경로가 절대경로인지 판단
절대경로이면 true, 상대경로이면 false를 반환한다.
path.relative(기준경로, 비교경로)
첫 번째 경로에서 두 번째 경로로 가는 방법(상대경로)을 반환
path.join(경로, …)
여러 인수를 넣으면 하나의 경로로 합친다.
상대경로인 .. 혹은 . 도 인식하여 처리한다.
path.resolve(경로, …)
path.join()과 비슷하지만, path.resolve()는 파라미터 중간에 절대 경로가 주어지면 이전 파라미터들을 무시한다.
path.join(“/a”, “/b”, “../c”) ⇒ “/a/c”
path.resolve(“/a”, “/b”, “../c”) ⇒ “/c”
url
url모듈은 인터넷 주소를 쉽게 조작할 수 있도록 도와주는 모듈이다.
node.js의 url 처리 방식에는 크게 두 가지 방식이 있는데, WHATWG 방식과 기존 방식이다.
아래 그림의 가운데 주소를 기준으로 위가 WHATWG 방식이고, 아래가 기존 node.js 에서 사용하던 url 구조이다.
WHATWG 방식으로 url을 파싱하기 위해선 url 모듈 내의 URL 생성자를 사용한다.
기존 방식으로 url을 파싱하기 위해선 url.parse() 를 이용한다.
1 |
|
myURL과 parsedUrl 객체는 아래와 같이 생겼다.
1 |
|
두 방식의 주요 차이점은 아래와 같다.
-
쿼리 파라미터 파싱 방식
WHATWG 방식은 searchParams이라는 특수한 객체로 반환한다.
myURL.searchParams.name과 같이 사용 가능하다.
기존 방식은 query 라는 프로퍼티에 담아 반환한다.
query는 단순 문자열이므로, 이를 더 쉽게 사용할 수 있는 객체 형태로 바꿔주는 “querystring” 이라는 모듈과 같이 쓰이는 경우가 대부분이다. -
인식하는 url 형태
WHATWG 방식은 host 부분 없이 pathname 부분만 있는 url을 인식하지 못한다.
예를 들어, WHATWG 방식은 /food?name=apple과 같은 url은 인식하지 못한다.
이러한 url을 다룰 땐 url.parse()를 사용해야 한다.
url.format(객체)
파싱된 객체를 원래의 url 문자열로 되돌릴 때 사용한다.
URL 객체와 Url 객체 모두 사용 가능하다.