ホームページ  >  記事  >  ウェブフロントエンド  >  nodejs_node.jsでのURL文字列とクエリ文字列の変換の詳細説明

nodejs_node.jsでのURL文字列とクエリ文字列の変換の詳細説明

WBOY
WBOYオリジナル
2016-05-16 16:30:141587ブラウズ

完全な URL 文字列のうち、「?」(? を除く)から「#」(# が存在する場合)、または URL 文字列の末尾(# が存在しない場合)までの部分をクエリ文字列と呼びます。

クエリ文字列モジュールの parse メソッドを使用して、文字列をオブジェクトに変換できます。parse メソッドは次のように使用されます。

querystring.parse(str,[sep],[eq],[options]);

str は、変換されたクエリ文字列

を表します。

sep 文字列内の区切り文字、デフォルトは &

eq. この文字列の割り当て文字、デフォルトは =."="左側がキー、右側が値です

options: はオブジェクトです。オブジェクト内の整数値型の maxKeys 属性を使用して、変換されたオブジェクト内の属性の数を指定できます。maxKeys 属性値が 0 に設定されている場合、その効果は「not」と同等です。 maxKeys を使用します。

コードをコピーします コードは次のとおりです:
var querystring=require("querystring");
var str="ユーザー名=guoyansi&age=40&sex=male";
var res=querystring.parse(str);
console.log("1:%j",res);//1:{"ユーザー名":"guoyansi","年齢":"40","性別":"男性"}
res=querystring.parse(str,"!");
console.log("2:%j",res);//2:{"ユーザー名":"guoyansi&age=40&sex=male"}
res=querystring.parse(str,"&");
console.log("3:%j",res);//3:{"ユーザー名":"guoyansi","年齢":"40","性別":"男性"}
str="ユーザー名=guoyansi!年齢=40!性別=男性";
res=querystring.parse(str,"!");
console.log("4:%j",res);//4:{"ユーザー名":"guoyansi","年齢":"40","性別":"男性"}
res=querystring.parse(str,"!","=");
console.log("5:%j",res);//5:{"ユーザー名":"guoyansi","年齢":"40","性別":"男性"}
res=querystring.parse(str,"!",":");
console.log("6:%j",res);//6:{"username=guoyansi":"","age=40":"","sex=male":""}
res=querystring.parse(str,"!","=",{maxKeys:2});
console.log("7:%j",res);//7:{"ユーザー名":"guoyansi","年齢":"40"}


Stringify は、文字列をクエリ文字列に変換する形式です。

querystring.stringify(obj,[sep],[eq])

コードをコピーします コードは次のとおりです:
var querystring=require("querystring");
var res= querystring.stringify({"ユーザー名":"guoyansi","年齢":"40","性別":"男性"});
console.log(res);//username=guoyansi&age=40&sex=male
res=querystring.stringify({"ユーザー名":"guoyansi","年齢":"40","性別":"男性"},"!");
console.log(res);//ユーザー名=guoyansi!年齢=40!性別=男性
res=querystring.stringify({"ユーザー名":"guoyansi","年齢":"40","性別":"男性"},"&",":");
console.log(res);//ユーザー名:guoyansi&年齢:40&性別:男性
res=querystring.stringify({"ユーザー名":"guoyansi","年齢":["40","24"]},"&","=");
console.log(res);//username=guoyansi&age=40&age=24


url モジュールでは、parse() メソッドを使用して URL 文字列をオブジェクトに変換できます。URL 文字列のさまざまな内容に応じて、オブジェクトが持つ属性とその意味は次のとおりです。

href: 変換された元の URL 文字列。

プロトコル: リクエストを行うときにクライアントによって使用されるプロトコル。

スラッシュ: プロトコルとパスの間に「//」区切り文字を使用します。
host: URL 文字列内の完全なアドレスとポート番号。アドレスは IP アドレスまたはホスト名です。 auth: URL 文字列の認証情報部分。
hostname: URL 文字列内の完全なアドレス。IP アドレスまたはホスト名である可能性があります。 search: 開始文字「?」を含む URL 文字列内のクエリ文字列
path: クエリ文字列を含む、URL 文字列内のパス。
query: URL 文字列内のクエリ文字列には、開始文字「?」、またはクエリ文字列に基づいて変換されたオブジェクトは含まれません (クエリ属性値は parse() メソッドで使用されるパラメータに基づいて決定されます)。 🎜> hash: 開始文字「#」を含む、URL 文字列内のハッシュ文字列。

url.parse(urlstr,[parseQueryString]);
urlStr: は変換する必要がある URL 文字列です。
parseQueryString: はブール値です。パラメーターが true の場合、クエリ文字列モジュールが内部で使用され、パラメーター値が false の場合、変換操作は実行されません。




コードをコピーします

コードは次のとおりです: var url=require("url"); var str="http://user:pass@host,com:8080/users/user.php?username=sisi&age=24&sex=male#name1";
var res=url.parse(str);
console.log(res);

コードをコピーします コードは次のとおりです:

{ プロトコル: 'http:',
スラッシュ: true、
認証: 'ユーザー:パス',
ホスト: 'ホスト:8080',
ポート: '8080'、
ホスト名: 'ホスト',
ハッシュ: '#name1',
検索: '?ユーザー名=sisi&年齢=24&性別=男性',
クエリ: 'ユーザー名=sisi&年齢=24&性別=男性',
パス名: '/,com/users/user.php',
パス: '/,com/users/user.php?username=sisi&age=24&sex=male',
href: 'http://user:pass@host:8080/,com/users/user.php?username=sisi&age=24&sex=male#name1' }

コードをコピーします コードは次のとおりです:

var url=require("url");
var str="http://user:pass@host,com:8080/users/user.php?username=sisi&age=24&sex=male#name1";
var res=url.parse(str,true);
console.log(res);

コードをコピーします コードは次のとおりです:

{ プロトコル: 'http:',
スラッシュ: true、
認証: 'ユーザー:パス',
ホスト: 'ホスト:8080',
ポート: '8080'、
ホスト名: 'ホスト',
ハッシュ: '#name1',
検索: '?ユーザー名=sisi&年齢=24&性別=男性',
クエリ: { ユーザー名: 'sisi'、年齢: '24'、性別: '男性' }、
パス名: '/,com/users/user.php',
パス: '/,com/users/user.php?username=sisi&age=24&sex=male',
href: 'http://user:pass@host:8080/,com/users/user.php?username=sisi&age=24&sex=male#name1' }

最初の例と 2 番目の例の違いは、parse の 2 番目のパラメーターであり、結果として異なるクエリが生成されます

URL 変換されたオブジェクトを URL 文字列に変換できます。

コードをコピーします コードは次のとおりです:

var url=require("url");
var str="http://user:pass@host,com:8080/users/user.php?username=sisi&age=24&sex=male#name1";
var res=url.parse(str,true);
console.log(url.format(res));

結果は次のとおりです:

http://user:pass@host:8080/,com/users/user.php?username=sisi&age=24&sex=male#name1

上記はすべて、ノード内での URL 文字列とクエリ文字列の変換に関するものですが、注意深く理解すれば、実際には非常に簡単です。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。