[node.js] 주소 문자열과 요청 파라미터
url 모듈
웹 사이트에 접속하기 위해 사용하는 주소 문자열을 구별하는 작업을 쉽게 할 수 있도록 노드에 만들어 둔 모듈url 모듈을 사용하기 위해서 require() 메소드를 호출해 모듈을 불러와 사용 할 수 있다.
- parse() : 주소 문자열을 파싱하여 URL 객체를 만들어 준다
- format() : URL 객체를 주소 문자열로 변환한다
var url = require('url');
//주소 문자열을 url 객체로 만들기
var curURL = url.parse('https://m.search.naver.com/search.naver?query=steve+jobs&where=m&sm=mtp_hty');
//url 객체를 주소 문자열로 만들기
var curStr = url.format(curURL);
console.log('주소 문자열 : %s',curStr);
console.dir(curURL);
| cs |
네이버 모바일 페이지에 steve jobs를 검색했을 때의 주소 문자열을 url 객체로 분석하는 예제다.
결과>>
주소 문자열 : https://m.search.naver.com/search.naver?query=steve+jobs&where=m&sm=mtp_hty
Url {
protocol: 'https:',
slashes: true,
auth: null,
host: 'm.search.naver.com',
port: null,
hostname: 'm.search.naver.com',
hash: null,
search: '?query=steve+jobs&where=m&sm=mtp_hty',
query: 'query=steve+jobs&where=m&sm=mtp_hty',
pathname: '/search.naver',
path: '/search.naver?query=steve+jobs&where=m&sm=mtp_hty',
href: 'https://m.search.naver.com/search.naver?query=steve+jobs&where=m&sm=mtp_hty'
}
| cs |
요청 파라미터 확인하기
URL 객체 속성은 주소 문자열의 여러 가지 정보를 포함하고 있는데 그 중 query속성은 요청 파라미터 정보를 가지고 있다. 이 정보에는 여러 개의 요청 파라미터가 모두 들어 있어 웹 서버는 클라이언트의 요청 query 속성에 들어있는 문자열을 다시 각각의 요청 파라미터로 분리해야 한다. 요청 파라미터는 & 기호로 구분되는데 querystring 모듈을 사용하면 요청 파라미터를 쉽게 분리할 수 있다.
var querystring = require('querystring');
var param = querystring.parse(curURL.query);
console.log('요청 파라미터 중 query의 값 :%s',param.query);
console.log('원본 요청 파라미터 :%s',querystring.stringify(param));
| cs |
결과>>
요청 파라미터 중 query의 값 :steve jobs
원본 요청 파라미터 :query=steve%20jobs&where=m&sm=mtp_hty
| cs |
No comments: