Dans une chaîne d'URL complète, la partie allant de "?" (à l'exclusion de ?) à "#" (si # existe) ou jusqu'à la fin de la chaîne d'URL (si # n'existe pas) est appelée chaîne de requête .
Vous pouvez utiliser la méthode parse dans le module Query String pour convertir la chaîne en objet. La méthode parse est utilisée comme suit :
querystring.parse(str,[sep],[eq],[options]);
str représente la chaîne de requête convertie,
sep. Le délimiteur dans la chaîne, la valeur par défaut est &
eq. Le caractère d'allocation dans cette chaîne, la valeur par défaut est =."="Le côté gauche est la clé et le côté droit est la valeur
options : est un objet. Vous pouvez utiliser l'attribut maxKeys d'un type de valeur entière dans l'objet pour spécifier le nombre d'attributs dans l'objet converti. Si la valeur de l'attribut maxKeys est définie sur 0, l'effet est équivalent à not. en utilisant maxKeys.
var querystring=require("querystring");
var str="username=guoyansi&age=40&sex=male";
var res=querystring.parse(str);
console.log("1:%j",res);//1:{"username":"guoyansi","age":"40","sex":"male"}
res=querystring.parse(str,"!");
console.log("2:%j",res);//2:{"username":"guoyansi&age=40&sex=male"}
res=querystring.parse(str,"&");
console.log("3:%j",res);//3:{"username":"guoyansi","age":"40","sex":"male"}
str="username=guoyansi!age=40!sex=male";
res=querystring.parse(str,"!");
console.log("4:%j",res);//4:{"username":"guoyansi","age":"40","sex":"male"}
res=querystring.parse(str,"!","=");
console.log("5:%j",res);//5:{"username":"guoyansi","age":"40","sex":"male"}
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:{"username":"guoyansi","age":"40"}
Stringify est un format qui convertit les chaînes en chaînes de requête.
querystring.stringify(obj,[sep],[eq])
var querystring=require("querystring");
var res= querystring.stringify({"username":"guoyansi","age":"40","sex":"male"});
console.log(res);//username=guoyansi&age=40&sex=male
res=querystring.stringify({"username":"guoyansi","age":"40","sex":"male"},"!");
console.log(res);//username=guoyansi!age=40!sex=male
res=querystring.stringify({"username":"guoyansi","age":"40","sex":"male"},"&",":");
console.log(res);//username:guoyansi&age:40&sex:male
res=querystring.stringify({"username":"guoyansi","age":["40","24"]},"&","=");
console.log(res);//username=guoyansi&age=40&age=24
Dans le module url, vous pouvez utiliser la méthode parse() pour convertir la chaîne URL en objet En fonction des différents contenus de la chaîne URL, les attributs que l'objet peut avoir et leurs significations sont les suivants.
href : la chaîne d'URL d'origine convertie.
protocole : Le protocole utilisé par le client lors des demandes.
barres obliques : utilisez le séparateur "//" entre le protocole et le chemin.
hôte : l'adresse complète et le numéro de port dans la chaîne URL. L'adresse peut être une adresse IP ou un nom d'hôte
.
auth : la partie des informations d'authentification dans la chaîne URL.
nom d'hôte : l'adresse complète dans la chaîne URL, qui peut être une adresse IP ou un nom d'hôte
.
search : La chaîne de requête dans la chaîne Url, y compris le caractère de départ "?"
path : le chemin dans la chaîne d'URL, y compris la chaîne de requête.
requête : la chaîne de requête dans la chaîne URL ne contient pas le caractère de départ "?", ni l'objet converti en fonction de la chaîne de requête (la valeur de l'attribut de requête est déterminée en fonction des paramètres utilisés dans la méthode parse() ); 🎜>
hash : la chaîne de hachage dans la chaîne de l'url, y compris le caractère de départ "#".
url.parse(urlstr,[parseQueryString]);
urlStr : est la chaîne d'URL qui doit être convertie,
parseQueryString : est une valeur booléenne lorsque le paramètre est vrai, le module querystring est utilisé en interne pour convertir la chaîne de requête en objet. Lorsque la valeur du paramètre est fausse, l'opération de conversion n'est pas effectuée.
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);
{ protocole : 'http:',
barres obliques : vrai,
auth : 'utilisateur:pass',
hôte : 'hôte :8080',
port : '8080',
nom d'hôte : 'hôte',
hachage : '#name1',
recherche : '?username=sisi&age=24&sex=male',
Requête : 'username=sisi&age=24&sex=male',
chemin : '/,com/users/user.php',
chemin : '/,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);
{ protocole : 'http:',
barres obliques : vrai,
auth : 'utilisateur:pass',
hôte : 'hôte :8080',
port : '8080',
nom d'hôte : 'hôte',
hachage : '#name1',
recherche : '?username=sisi&age=24&sex=male',
requête : { nom d'utilisateur : 'sisi', âge : '24', sexe : 'masculin' },
chemin : '/,com/users/user.php',
chemin : '/,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' }
La différence entre le premier exemple et le deuxième exemple est le deuxième paramètre d'analyse, qui entraîne une requête différente dans le résultat
Vous pouvez convertir un objet converti en URL en chaîne d'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));
Le résultat est :
http://user:pass@host:8080/,com/users/user.php?username=sisi&age=24&sex=male#name1
Ce qui précède concerne la conversion des chaînes d'URL et des chaînes de requête dans le nœud. Si vous l'étudiez attentivement, c'est en fait assez simple.