ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Node.js 교과서 - path , url , querystring
    Node.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 방식의 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.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

    댓글

Designed by Tistory.