김핵센
핵센의 개발공부로그
김핵센
전체 방문자
오늘
어제
  • 분류 전체보기 (66)
    • 창업 (1)
    • Flutter (1)
    • Javascript (9)
    • Git 강의 (2)
    • 항해99 (11)
    • 알고리즘 (25)
    • Node.js (11)
    • Network (1)
    • Database (2)
    • AWS (1)
    • Nest.js (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 주특기입문주차
  • 창VOD
  • 푸드 파이트 대회
  • 팀과제
  • 주특기 입문주차
  • 창업 노하우
  • Wil
  • JavaScript
  • 스파르타코딩클럽
  • 내장 모듈
  • 가장 가까운 같은 글자
  • searchParams
  • worker_threads
  • 추억 점수
  • 알고리즘
  • git
  • 명예의 전당 (1)
  • 혼자공부하는자바스크립트
  • 1주차 마무리
  • 제로초
  • 혼자 공부하는 자바스크립트
  • til
  • 항해99
  • github
  • 크기가 작은 부분문자열
  • 프로그래머스
  • 혼공스
  • node.js
  • 내장모듈
  • 주특기주차

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
김핵센

핵센의 개발공부로그

Node.js 내장 모듈 - url
Node.js

Node.js 내장 모듈 - url

2023. 5. 4. 22:30

오늘은 Node.js에서 제공하는 내장 모듈인 url에 대해 알아볼 것이다.

위 이미지는 url의 각 구성 요소에 대한 속성을 보여주고 있다.

url 기준 상단은 기존 노드 방식이고 하단은 WHATWG 방식이다.

주소에 대한 명칭을 두 가지 단체(Node, WHATWG)에서 다르게 일컫는다.

예를 들어 https://www.naver.com/login 이란 주소가 있는데 주소를 받을 때 /login 이라는 앞단이 잘린 주소를 받으면 WHATWG 방식으로는 해석을 못한다. 

이럴 때 기존 노드 방식을 사용하면 된다.

url 모듈 사용 방법

const url = require('url');

const { URL } = url;
const myURL = new URL('http://www.gilbut.co.kr/book/bookList.aspx?sercate1=001001000#anchor');
console.log('new URL():', myURL);
console.log('url.format():', url.format(myURL));

콘솔 결과


쿼리 스트링을 처리하는 방식으로는 두 가지가 있다.

1. searchParmas(WHATWG 방식)

const myURL = new URL('http://www.gilbut.co.kr/?page=3&limit=10&category=nodejs&category=javascript');
console.log('searchParams:', myURL.searchParams);
console.log('searchParams.getAll():', myURL.searchParams.getAll('category'));
console.log('searchParams.get():', myURL.searchParams.get('limit'));
console.log('searchParams.has():', myURL.searchParams.has('page'));

console.log('searchParams.keys():', myURL.searchParams.keys());
console.log('searchParams.values():', myURL.searchParams.values());

myURL.searchParams.append('filter', 'es3');
myURL.searchParams.append('filter', 'es5');
console.log(myURL.searchParams.getAll('filter'));

myURL.searchParams.set('filter', 'es6');
console.log(myURL.searchParams.getAll('filter'));

myURL.searchParams.delete('filter');
console.log(myURL.searchParams.getAll('filter'));

console.log('searchParams.toString():', myURL.searchParams.toString());
myURL.search = myURL.searchParams.toString();

콘솔 결과

2. querystring(기존 노드 방식)

const url = require('url');
const querystring = require('querystring');

const parseUrl = url.parse(
  'http://www.gilbut.co.kr/?page=3&limit=10&category=nodejs&category=javascript'
);
const query = querystring.parse(parseUrl.query);
console.log('querystring.parse():', query);
console.log('querystring.stringify():', querystring.stringify(query));

콘솔 결과

searchParams 에는기능이 많다는 장점이 있다.

대신 간단한 기능을 원한다면 기존 노드 방식인 querystring 모듈을 사용하면 된다.

 

searchParams 메소드의 다양한 기능을 알아보고 싶다면 Node.js 공식 문서를 참고하면 된다..!

해당링크: https://nodejs.org/dist/latest-v18.x/docs/api/

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

Node.js 내장 모듈 - util  (0) 2023.05.10
Node.js 내장 모듈 - crypto  (0) 2023.05.06
Node.js 내장 모듈 - path  (0) 2023.05.03
Node.js 내장 모듈 - os  (0) 2023.05.01
package.json / package-lock.json 이란?  (0) 2022.12.04
    'Node.js' 카테고리의 다른 글
    • Node.js 내장 모듈 - util
    • Node.js 내장 모듈 - crypto
    • Node.js 내장 모듈 - path
    • Node.js 내장 모듈 - os
    김핵센
    김핵센
    개발 공부 관련 글을 적는 블로그입니다.

    티스토리툴바