■ Front-End ■/Node.js

[Node.js] url (Uniform Resource Locator)모듈로 URL을 파싱

한길(One Way) 2023. 2. 26.
Node.js는 빠르고 쉬우며 확장 가능한 JavaScript 런타임이다.

 

1. 개요

Node.js에서 url 모듈을 사용하여 url 주소를 파싱하여 객체로 만들어 정보를 표시하는 예제이다.

 

2. 사용법

url 문자열은 여러 구성 요소를 포함하는 구조화된 문자열이다.

[출처]  https://nodejs.org/dist/latest-v16.x/docs/api/url.html
 

url 모듈을 선언하고 parse() 함수로 주소를 파싱한다.

var url = require('url');
var urlObj = url.parse("http://domain:8080/admin/page?name=admin&pwd=1234#top", true, true);

파싱된 객체를 사용하여 아래와 같이 각각의 정보를 표시한다.

전체 주소를 표시
console.log("urlObj.href = " + urlObj.href);

프로토콜을 표시
console.log("urlObj.protocol = " + urlObj.protocol);

호스트를 표시
console.log("urlObj.host = " + urlObj.host);

포트를 표시
console.log("urlObj.port = " + urlObj.port);

전체경로를 표시
console.log("urlObj.path = " + urlObj.path);

경로만 표시
console.log("urlObj.pathname = " + urlObj.pathname);

검색어를 표시
console.log("urlObj.search = " + urlObj.search);

쿼리스트링을 표시
console.log("urlObj.query :");
console.log(urlObj.query);

해쉬를 표시
console.log("urlObj.hash = " + urlObj.hash);

3. 예제

위에서 설명한 코드로 실행한 예제이다.

/** url : Uniform Resource Locator */
 
var url = require('url');
var urlObj = url.parse("http://domain8080/admin/page?name=admin&pwd=1234#top", true, true);

console.log("urlObj.href = " + urlObj.href);
console.log("urlObj.protocol = " + urlObj.protocol);
console.log("urlObj.host = " + urlObj.host);
console.log("urlObj.port = " + urlObj.port);

console.log("urlObj.path = " + urlObj.path);
console.log("urlObj.pathname = " + urlObj.pathname);
console.log("urlObj.search = " + urlObj.search);

console.log("urlObj.query :");
console.log(urlObj.query);

console.log("urlObj.hash = " + urlObj.hash); 
console.log(url.format({ protocol : 'http', host : 'domain', pathname : '/' }));

실행 결과

urlObj.href = http://domain8080/admin/page?name=admin&pwd=1234#top
urlObj.protocol = http:
urlObj.host = domain8080
urlObj.port = null
urlObj.path = /admin/page?name=admin&pwd=1234
urlObj.pathname = /admin/page
urlObj.search = ?name=admin&pwd=1234
urlObj.query :
[Object: null prototype] { name: 'admin', pwd: '1234' }
urlObj.hash = #top
http://domain/

4. 참조 URL

728x90

댓글