完全な 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 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 文字列とクエリ文字列の変換に関するものですが、注意深く理解すれば、実際には非常に簡単です。