리그캣의 개발놀이터

노드js[Node.js] url 객체 사용하기 본문

개발 공부/Node.js(웹)

노드js[Node.js] url 객체 사용하기

리그캣 2018. 1. 17. 14:48


원본 요청 파라미터 : query=steve%20jobs&where=m&sm=mtp_hty


안녕하세요 리그캣 입니다.


오늘은 URL 모듈 사용방법에 대해 알아 보겠습니다.


http://nodejs.org/api/url.html


URL 모듈을 사용하면 일반 주소 문자열을 URL 객체로 만들거나 또는 URL 객체에서 일반 문자열로 변환하는 일이 쉬워 집니다.


-Do it nodejs 프로그래밍 


만약 주소 문자열로 


https://www.league-cat.tistory.com/?gws_rd=ssl#newwindow=1&q=actor


라는 값이 들어오게 된다고 생각해보세요


url 모듈을 이용하면 


protocol : 'https'


host : 'www.league-cat.tistory.com'


query : 'gws_rd=ssl#newwindow=1&q=actor'


url 모듈을 이용해 주소 문자열을 객체로 만들면 문자열 안에 있던 각각의 정보를 나누어 그 객체의 속성을 보관해 줍니다. 따라서 요청 프로토콜이 http인지 아니면 https인지를 구별하거나 요청 파라미터를 확인하고 싶다면 url 객체가 갖고 있는 속성 값을 확인하면 됩니다.



url.parse(urlStr, [parseQueryString], [slashesDenoteHost])


url 문자열(urlStr)을 url 객체로 변환하여 리턴합니다. parseQueryString과 slashesDenoteHost는 기본값으로 false 입니다.


parseQueryString

 - true : url 객체의 query 속성을 객체 형식으로 가져옵니다. (querystring 모듈을 사용합니다.)

 - false : url 객체의 query 속성을 문자열 형식으로 가져옵니다.


slashesDenoteHost

 - ture : urlStr '//foo/bar' 인 경우 foo는 host, /bar는 path로 인식합니다.

 - false : urlStr이 '//foo/bar' 인 경우 //foo/bar 전체를 path로 인식하고 host는 null 입니다.


주소 문자열을 URL 객체로 변환 예제 - doit nodejs 프로그래밍


보시는 바와 같이 url은 제가 구글에 아무거나 검색을 해서 따온 url입니다. 이것을 url.parse를 이용하게 되면



이와 같이 저절로 protocol 등 나누어지는것을 확인할 수 있어요!!!


요청 파라미터 확인하기 예제 - doit nodejs 프로그래밍


var querystring 부터 아래까지 소스를 출력합니다.


요청 파라미터의 query값을 알아보기위한 소스입니다.


애..왜지.. query값이 undefined 되었는데요. 제가 볼때 인코딩? 이안된것 같네요 url을 책에 있는것과 같은걸루 바꾸어 보겠습니다.


var curURL = url.parse('https://m.search.naver.com/search.naver?query=steve+jobs&where=m&sm=mtp_hty');


로 바꾸어 보겠습니다.

주소 문자열 : https://m.search.naver.com/search.naver?query=steve+jobs&where=m&sm=mtp_hty
test9.js:8
요청 파라미터 중 query 값 : steve jobs
test9.js:14
원본 요청 파라미터 : query=steve%20jobs&where=m&sm=mtp_hty


짜자잔!!!!!!! query 값을 확인할 수 있네요 ㅎㅎㅎ

다음 시간엔 이벤트에 대하여 배워보도록 하겠습니다.


출처-https://opentutorials.org/module/938/7369



Comments