Node.js

OS, path, url 모듈

쿠와와 2020. 12. 7. 17:52

OS

운영체제의 정보를 담고 있음

모듈은 require로 가져옴(내장 모듈이라 경로 대신 이름만 적어줘도 됨)

const os = require('os');

console.log(os.cpus());
// 나는 8코어를 사용하고 있어 8개의 결과가 나온다.

os.arch():        process.arch와 동일합니다.

os.platform():  process.platform과 동일합니다.

os.type():        운영체제의 종류를 보여줍니다.

os.uptime():    운영체제 부팅 이후 흐른 시간()을 보여줍니다. process.uptime()은 노드의 실행 시간이었습니다.

os.hostname(): 컴퓨터의 이름을 보여줍니다.

os.release():     운영체제의 버전을 보여줍니다.

os.homedir():   홈 디렉터리 경로를 보여줍니다.

os.tmpdir():     임시 파일 저장 경로를 보여줍니다.

os.cpus():        컴퓨터의 코어 정보를 보여줍니다.

os.freemem():   사용 가능한 메모리(RAM)를 보여줍니다.

os.totalmem():   전체 메모리 용량을 보여줍니다.

 

 

path

폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈

운영체제별로 경로 구분자가 다름

Windows: ‘\’

POSIX: ‘/’    (맥이랑 윈도우를 합친 것)

 

join은 절대경로를 무시한다

resolve는 절대경로를 존중해서 앞에있는 것을 무시한다.

 

path.sep 경로의 구분자입니다. Windows\, POSIX/입니다.
path.delimiter

환경 변수의 구분자입니다. process.env.PATH를 입력하면 여러 개의 경로가 이 구분자로 구분되어 있습니다. Windows는 세미콜론(;)이고 POSIX는 콜론(:)입니다.

path.dirname 파일이 위치한 폴더 경로를 보여줍니다.
path.extname 파일의 확장자를 보여줍니다.
path.basename 파일의 이름(확장자 포함)을 보여줍니다. 파일의 이름만 표시하고 싶다면 basename의 두 번째 인자로 파일의 확장자를 넣어주면 됩니다.
path.parse 파일 경로를 root, dir, base, ext, name으로 분리합니다.
path.format path.parse()한 객체를 파일 경로로 합칩니다.
path.normalize / \를 실수로 여러 번 사용했거나 혼용했을 때 정상적인 경로로 변환해줍니다.
path.isAbsolute 파일의 경로가 절대경로인지 상대경로인지 truefalse로 알려줍니다.
path.relative 경로를 두 개 넣으면 첫 번째 경로에서 두 번째 경로로 가는 방법을 알려줍니다.
path.join 여러 인자를 넣으면 하나의 경로로 합쳐줍니다. 상대경로인 ..(부모 디렉터리).(현 위치)도 알아서 처리해줍니다.
path.resolve path.join()과 비슷하지만 차이가 있습니다. 차이점은 다음에 나오는 Note에서 설명합니다.

joinresolve의 차이: resolve/를 절대경로로 처리, join은 상대경로로 처리

상대 경로: 현재 파일 기준. 같은 경로면 점 하나(.), 한 단계 상위 경로면 점 두 개(..)

절대 경로는 루트 폴더나 노드 프로세스가 실행되는 위치가 기준

 

\\\ 차이: \는 윈도 경로 구분자, \\는 자바스크립트 문자열 안에서 사용(\가 특수문자라 \\로 이스케이프 해준 것)

윈도에서 POSIX path를 쓰고 싶다면: path.posix 객체 사용

POSIX에서 윈도 path를 쓰고 싶다면: path.win32 객체 사용

 

url 모듈

인터넷 주소를 쉽게 조작하도록 도와주는 모듈

url 처리에 크게 두 가지 방식이 있음(기존 노드 방식 vs WHATWG 방식

아래 그림에서 가운데 주소를 기준으로 위쪽은 기존 노드 방식, 아래쪽은 WHATWG 방식

 

searchParams

WHATWG 방식에서 쿼리스트링(search) 부분 처리를 도와주는 객체

?page=3&limit=10&category=nodejs&category=javascript 부분

 

querystring

기존 노드 방식에서는 url querystringquerystring 모듈로 처리

querystring.parse(쿼리): urlquery 부분을 자바스크립트 객체로 분해해줍니다.

querystring.stringify(객체): 분해된 query 객체를 문자열로 다시 조립해줍니다.