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