URL 모듈
모듈은 URL을 구문 분석하고 URL을 생성하며 URL을 접합 할 수 있으므로 HTTP 요청을 처리 할 때 URL 모듈 사용량이 매우 높습니다. 먼저 완전한 URL의 구성 요소를 살펴 보겠습니다.
코드 사본은 다음과 같습니다.
href
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
호스트 경로
--------------------------------------------------------------------------------------------------------------------------------
http : // user : pass @ host.com : 8080/p/a/t/h? query = string #hash
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
프로토콜 인증 호스트 이름 포트 PathName 검색 해시
------------
질문
.parse 메소드를 사용하여 URL 문자열을 아래와 같이 URL 객체로 변환 할 수 있습니다.
코드 사본은 다음과 같습니다.
url.parse ( 'http : // user : [email protected] : 8080/p/a/t/h? query = string#hash');
/* =>
{프로토콜 : 'http :',
Auth : '사용자 : Pass',
호스트 : 'host.com:8080',
포트 : '8080',
hostname : 'host.com',
해시 : '#hash',
검색 : '? query = string',
쿼리 : 'query = string',
PathName : '/p/a/t/h',
경로 : '/p/a/t/h? query = string',
href : 'http : // user : [email protected] : 8080/p/a/t/h? query = 문자열#hash'}
*/
.parse 메소드가 반드시 완전한 URL은 아닙니다. 예를 들어, HTTP 서버 콜백 함수에서 request.url에는 프로토콜 헤더 및 도메인 이름이 포함되어 있지 않지만 .parse 메소드를 사용하여 구문 분석 할 수도 있습니다.
코드 사본은 다음과 같습니다.
http.createserver (함수 (요청, 응답) {
var tmp = request.url; // => "/foo/bar? a = b"
url.parse (TMP);
/* =>
{프로토콜 : NULL,
슬래시 : null,
인증 : null,
호스트 : NULL,
포트 : null,
호스트 이름 : null,
해시 : null,
검색 : '? a = b',
쿼리 : 'a = b',
PathName : '/foo/bar',
경로 : '/foo/bar? a = b',
href : '/foo/bar? a = b'}
*/
}). 듣기 (80);
.PARSE 메소드는 또한 두 번째 및 세 번째 부울 유형 옵션 매개 변수도 지원합니다. 두 번째 매개 변수가 true와 같으면 메소드에 의해 리턴 된 URL 객체의 쿼리 필드는 더 이상 문자열이 아니라 쿼리 스트링 모듈로 변환 된 매개 변수 객체입니다. 세 번째 매개 변수가 True와 같으면이 메소드는 //www.example.com/foo/bar와 같은 프로토콜 헤더없이 URL을 올바르게 구문 분석 할 수 있습니다.
형식 메소드는 다음과 같이 URL 객체를 URL 문자열로 변환 할 수 있습니다.
코드 사본은 다음과 같습니다.
url.format ({
프로토콜 : 'http :',
호스트 : 'www.example.com',
PathName : '/p/a/t/h',
검색 : 'query = string'
});
/* =>
'http://www.example.com/p/a/t/h?query=string'
*/
또한 .resolve 방법을 사용하여 아래와 같이 URL을 스플 라이스하는 데 사용할 수 있습니다.
코드 사본은 다음과 같습니다.
url.resolve ( 'http://www.example.com/foo/bar', '../baz');
/* =>
http://www.example.com/baz
*/
쿼리 문자열
쿼리 스트링 모듈은 아래와 같이 URL 매개 변수 문자열 및 매개 변수 개체를 변환하는 데 사용됩니다.
코드 사본은 다음과 같습니다.
querystring.parse ( 'foo = bar & baz = qux & baz = quux & corge');
/* =>
{foo : 'bar', baz : [ 'qux', 'quux'], corge : ''}
*/
querystring.stringify ({foo : 'bar', baz : [ 'qux', 'quux'], corge : ''});
/* =>
'foo = bar & baz = qux & baz = quux & corge ='
*/