URLモジュール
モジュールがURLを解析し、URLを生成し、URLをスプライシングすることを許可するため、HTTP要求を処理する場合、URLモジュールの使用は非常に高くなります。まず、完全なURLのコンポーネントを見てみましょう。
コードコピーは次のとおりです。
href
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- -
ホストパス
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- -
http:// user:pass @ host.com:8080/p/a/t/h?query = string #hash
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- -
プロトコルAUTHホスト名ポートパス名検索ハッシュ
------------
クエリ
以下に示すように、.Parseメソッドを使用してURL文字列をURLオブジェクトに変換できます。
コードコピーは次のとおりです。
url.parse( 'http:// user:[email protected]:8080/p/a/t/h?query = string#hash');
/* =>
{protocol: 'http:'、
AUTH: 'ユーザー:パス'、
ホスト: 'host.com:8080'、
ポート: '8080'、
ホスト名: '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/h?query = string#hash'}
*/
.Parseメソッドは、必ずしも完全なURLではありません。たとえば、HTTPサーバーコールバック関数では、Request.urlにはプロトコルヘッダーとドメイン名が含まれていませんが、.Parseメソッドを使用して解析することもできます。
コードコピーは次のとおりです。
http.createserver(function(request、response){
var tmp = request.url; // => "/foo/bar?a = b"
url.parse(tmp);
/* =>
{プロトコル:null、
スラッシュ:ヌル、
AUTH:null、
ホスト:ヌル、
ポート:null、
ホスト名:null、
ハッシュ:ヌル、
検索: '?a = b'、
クエリ: 'a = b'、
パス名: '/foo/bar'、
パス: '/foo/bar?a = b'、
href: '/foo/bar?a = b'}
*/
})。聞きます(80);
.Parseメソッドは、2番目と3番目のブールタイプのオプションパラメーターもサポートしています。 2番目のパラメーターがtrueに等しい場合、メソッドによって返されるURLオブジェクトのクエリフィールドは文字列ではなく、クエリストリングモジュールによって変換されるパラメーターオブジェクトです。 3番目のパラメーターが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 ='
*/