min8282

[Node.js] 내장 모듈(path, url, searchParams) 본문

Dev/Node.js

[Node.js] 내장 모듈(path, url, searchParams)

min8282 2024. 4. 30. 20:13

os 모듈

노드가 제공하는 내장 모듈을 require로 사용. 

- 내장 모듈은 경로 없이 이름만 기재 가능

 

os 모듈 메서드

os.arch(): process.arch와 동일

os.platform(): process.platform과 동일

os.type(): 운영체제의 종류

os.uptime(): 운영체제 부팅 이후 경고 시간(초). process.uptime()은 노드의 실행 시간

나머진 알아서


path

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

  • path.sep: 경로 구분자 windows는 \, POSIX는 /
  • path.delimeter - 나중에
  • path.dirname(경로): 파일이 위치한 폴더 경로
  • path.extname(경로): 파일의 확장자
  • path.basename(경로, 확장자): 파일 이름(확장자 포함), 두 번째 인자에 파일의 확장자를 넣으면 확장자 제외 가능
  • path.parse(경로): 파일의 경로를 root, dir, base, ext, name으로 분리
  • path.format(객체): path.parse()한 객체를 파일 경로로 합침
  • path.normalize(경로): \나 /를 실수로 여러 번 사용했거나 혼용했을 때 정상적인 경로로 변환해줌
  • path.isAbsolute(경로): 파일의 경로가 절대경로인지 상대경로인지 true or false로 알려줌
  • path.relative(기준경로, 비교경로): 첫 번째 경로에서 두 번째 경로로 가는 방법을 알려줌
  • path.join(경로, .. .): 여러 인자로 넣은 여러 경로를 하나의 경로로 연결. 상대 경로인 ..(부모 dir)과 .(현재 위치)등도 처리
  • path.resolve(경로, ...): path.join()과 비슷하지만, /를 만나면 절대경로로 인식해서 앞의 경로를 무시하고 연결

join과 resolve의 차이

- .resolve()는 /를 절대경로로 처리, .join()은 상대경로로 처리

- 상대경로: 현재 파일 기준. 같은 경로 = . , 한 단계 상위(부모) 경로 = ..

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

path.join('/a', '/b', 'c');    /* 결과: /a/b/c */
path.resolve('/a', '/b', 'c'); /* 결과: /b/c */

url 모듈

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

- url 처리의 두 가지 방식(WHATWG 방식 vs 기존 노드 방식) 중 요즘은 WHATWG 방식만 사용

 

WHATWG 주소 체계 - 포트 번호가 없는 경우도 있음 -> 이건 뒤에서 설명

 

url은 노드 내장 객체이기도 해서 require 필요 없음

 

new URL(주소)

- url 주소를 부분별로 분해해서 origin, protocol, username, host, searchParams 등 속성을 포함하는 객체를 생성

 

url.format(object)

- 분해된 url 객체를 다시 원래 상태로 조립

searchParams(URL 모듈 속성 중 하나임)

- WHATWG의 URL 생성자로 만든 주소 객체에 포함된 객체

- URL 주소에서 search 부분(쿼리스트링)을 다루기 위한 객체

쿼리스트링은 보통 주소를 통해 데이터를 전달할 때 사용

- '?'로 시작해서, 그 뒤에 '키=값' 형식으로 데이터를 전달

- 여러 키가 있을 경우 '&'로 구분

 

.getAll(key)

- 키에 해당하는 모든 값들을 가져옴.

- category 키에는 두 가지 값, 즉 node.js와 javascript의 값이 들어 있다.

  • .get(key): 키에 해당하는 첫 번째 값만 가져옴
  • .has(key): 해당 키가 있는지 없는지를 검사
  • .keys(): searchParams의 모든 키를 반복기 객체로 가져옴
  • .values(): searchParams의 모든 값을 반복기 객체로 가져옴
  • .append(key, value): 해당 키를 추가. 같은 키의 값이 있다면 유지하고 하나 더 추가
  • .set(key, val): append와 비슷하지만 같은 키의 값등를 모두 지우고 새로 추가
  • .delete(key): 해당 키를 제거
  • .toString(): 조작한 searchParams 객체를 다시 문자열로 만듦. 이 문자열을 search에 대입하면 주소 객체에 반영됨
const queryString = searchParams.toString(); 

// e.g. id가 'admin', password가 '123123'일 경우 url
// http://www.loginPage.com/?id=admin&password=123123