-
Node.js 교과서 - path , url , querystringNode.js 2021. 9. 19. 01:46
Path
폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈
- path.dirname(경로) : 파일이 위치한 폴더 경로
- path.extname(경로) : 파일의 확장자
- path.basename(경로 , 확장자) : 파일의 이름을 표시
- path.parse(경로) : 파일 경로를 rott , dir , base , ext , name으로 분리한다.
URL
인터넷 주소를 쉽게 조작하도록 도와주는 모듈이다.
url 주소 윗 부분은 노드 방식의 url
url 주소 아랫 부분은 WHATWG 방식의 urlconst 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.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
'Node.js' 카테고리의 다른 글
Node.js 교과서 - 파일 시스템 (0) 2021.09.19 Node.js 교과서 - worker_threads (0) 2021.09.19 Node.js 교과서 - 암호화 (0) 2021.09.19 Node.js 교과서 - process (0) 2021.09.19 이벤트 루프 , 콜 스택, 태스크 큐 (0) 2021.09.18