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

2024. 4. 30. 20:13·Dev/Node.js

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

'Dev > Node.js' 카테고리의 다른 글

Cannot set headers after they are sent to the client 오류  (0) 2024.04.30
[Node.js] 10 - 노드 내장 객체 - console, process.env, nextTick  (3) 2024.04.27
[Node.js] 09 - CommonJS & ECMAScripts Module  (1) 2024.04.22
[Node.js] 08 - npm(Node Package Manager)  (4) 2024.04.22
[Node.js] 07 - https와 http2  (0) 2024.04.22
'Dev/Node.js' 카테고리의 다른 글
  • Cannot set headers after they are sent to the client 오류
  • [Node.js] 10 - 노드 내장 객체 - console, process.env, nextTick
  • [Node.js] 09 - CommonJS & ECMAScripts Module
  • [Node.js] 08 - npm(Node Package Manager)
min8282
min8282
  • min8282
    min8282
    min8282
  • 전체
    오늘
    어제
    • 분류 전체보기 (110)
      • Security (33)
        • System & Network (2)
        • Application (5)
        • Cloud (20)
      • Dev (18)
        • Node.js (12)
        • Hadoop (3)
        • BOJ (2)
      • Web3 & Blockchain (2)
        • Web3 (2)
      • K-Shield.Jr (15)
      • Web Security Academy (3)
      • Wargame (13)
        • Dreamhack (3)
        • Bandit (10)
      • NS (16)
        • CTF (6)
  • 블로그 메뉴

    • 홈
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    web3
    스마트 컨트랙트
    오블완
    정처기필기
    메타코드M
    정처기 필기
    AWS CLI
    ESC1
    amazon s3 트리거
    보안 그룹
    탈중앙화
    File Upload
    metacodem
    AWS SSM
    metacode
    prepared statement
    정보처리기사
    Path Traversal
    ELB
    Session Manager
    web security academy
    aws 트리거
    정처기
    web3 보안
    티스토리챌린지
    aws lambda
    splunk db connect
    systems manager
    메타코드
    스마트컨트랙트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
min8282
[Node.js] 내장 모듈(path, url, searchParams)
상단으로

티스토리툴바