url, querystring 모듈
URL 주소는 아래와 같은 체계로 분리할 수 있습니다.
https://www.example.com:3000/p/search?q=string#hash
https: - protocol
www.example.com - hostname
3000 - port
/p/search - pathname
q=string - query
#hash - hash
웹 애플리케이션 개발을 위해서는 이러한 url과 query string 의 처리가 필요합니다. 노드에는 주소쳬계 조작을 지원하기 위해 url 모듈과 querystring 모듈을 제공합니다.
URL & querystring
url : 웹사이트 주소 문자열 정보를 받아 처리하기 위한 모듈입니다. URL의 각각의 부분을 뽑아낼 수 있는 메서드를 제공합니다.
querystring : 클라이언트에서 요청한 요청 파라미터를 웹서버에서 처리하기 위해서는 query 문자열 속의 문자열을 다시 각각의 요청 파라미터로 분리해야합니다. querystring 모듈은 이 작업을 처리할 수 있는 메서드를 제공합니다.
/* url */
const url = require('url');
// 주소 문자열을 파싱하여 URL 객체로 만든다
var urlObject = url.parse('https://www.google.com/search?query=steve+jobs')
urlObject.protocol //-> https:
// URL 객체를 주소 문자열로 변환한다
var urlString = url.format(urlObject)
/* querystring */
const querystring = require('querystring');
// 요청 파라미터 문자열을 파싱하여 객체로 만든다
var params = querystring.parse(urlObject.query)
// 요청 파라미터를 다시 하나의 문자열로 바꾼다
var paramString = querystring.stringify(params);
// Example
var string = "http://localhost:8888/start?foo=bar&hello=world"
url.parse(string).pathname // /start
url.parse(string).query // foo=bar&hello=world
querystring(string)["foo"] // bar
querystring(string)["hello"] // world