Node.js 교과서 - path , url , querystring

Node.js 교과서 - path , url , querystring

Path

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

path.dirname(경로) : 파일이 위치한 폴더 경로

path.extname(경로) : 파일의 확장자

path.basename(경로 , 확장자) : 파일의 이름을 표시

path.parse(경로) : 파일 경로를 rott , dir , base , ext , name으로 분리한다.

URL

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

url 주소 윗 부분은 노드 방식의 url

url 주소 아랫 부분은 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)); const parsedUrl = url.parse('http://www.gilbut.co.kr/book/bookList.aspx?sercate1=001001000#anchor'); console.log('url.parse():',parsedUrl); console.log('url.format():',url.format(parsedUrl));

new URL() 로 생성한 url은 WHATWG의 url이다. username , password , origin , searchParams 속성이 존재한다.

url.parse() 를 통해 node 방식 url을 사용할 수 있다.

=>url.parse(주소) : 주소를 분해한다. username 과 password 대신 auth 속성이 존재하고 searchParams 대신 query가 존재한다.

=>url.parse(주소) : 주소를 분해한다. username 과 password 대신 auth 속성이 존재하고 searchParams 대신 query가 존재한다. url.format(객체) : WHATWG 방식 url과 기존 노드의 url을 모두 사용할 수 있다. new URL 과 url.parse로 분해된 URL을 원래 상태로 조립한다.

WHATWG와 노드의 url은 취향에 따라 다르지만, host부분 없이 pathname만 오는 경우 ( /book/bookList.apse) 인 경우에는 WHATWG 방식이 처리할 수 없다.

WHATWG 방식은 search 부분을 searchParams 라는 특수한 객체로 반환하므로 유용하다.

search는 물음표로 시작하고, 그 뒤에 키=값 형식으로 데이터를 전달한다. 키가 여러 개일 경우 &로 구분한다.

querystring

기존 노드 방식의 url을 사용 할 때 , search 부분을 사용하기 쉽게 객체로 만드는 모듈이다.

const url = require('url'); const querystring = require('querystring); const parsedUrl = url.parse('http://www.gilbut.co.kr/?page=3&limit;=10&category;=nodejs&category;=javascript'); const query = querystring.parse(parsedUrl.query); console.log('querystring.parse() : ' , query); // querystring.parse() : [Object: null prototype] { // page : '3', // limit : '10', // category : [ 'nodejs' , 'javascript' ] console.log('querystring.stringify() : ', querystring.stringify(query)); // querystring.stringify() : page=3&limit;=10&category;=nodejs&category;=javascript

from http://jin-pro.tistory.com/72 by ccl(A) rewrite - 2021-09-19 03:00:34