module URL
Le module url est très utilisé lors du traitement des requêtes HTTP, car ce module permet d'analyser les URL, de générer des URL et d'épisser des URL. Jetons d'abord un coup d'œil aux composants d'une URL complète.
href
-------------------------------------------------- ---------------
chemin de l'hôte
-------------------------------------------------- -------------------------------------------------- -----------
http: // utilisateur:pass @ host.com : 8080 /p/a/t/h ?query=string #hash
----- --------- -------- ---- -------- ------------- --- --
protocole d'authentification du nom d'hôte du port de hachage de recherche du chemin d'accès
Depuis
requête
Nous pouvons utiliser la méthode .parse pour convertir une chaîne URL en un objet URL. L'exemple est le suivant.
url.parse('http://user:pass@host.com:8080/p/a/t/h?query=string#hash');
/* =>
{ protocole : 'http:',
auth : 'utilisateur:pass',
hôte : 'host.com:8080',
port : '8080',
nom d'hôte : 'host.com',
hachage : '#hash',
recherche : '?query=string',
requête : 'query=string',
chemin : '/p/a/t/h',
chemin : '/p/a/t/h?query=string',
href : 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash' }
*/
Ce qui est transmis à la méthode .parse ne doit pas nécessairement être une URL complète. Par exemple, dans la fonction de rappel du serveur HTTP, request.url ne contient pas l'en-tête du protocole ni le nom de domaine, mais il peut également être analysé à l'aide du .parse. méthode.
http.createServer(fonction (demande, réponse) {
var tmp = request.url; // => "/foo/bar?a=b"
url.parse(tmp);
/* =>
{ protocole : nul,
barres obliques : null,
auth: nul,
Hôte : nul,
Port : nul,
Nom d'hôte : nul,
hachage : nul,
Rechercher : '?a=b',
Requête : 'a=b',
Nom du chemin : '/foo/bar',
Chemin : '/foo/bar?a=b',
href : '/foo/bar?a=b' }
*/
}).écouter(80);
La méthode .parse prend également en charge les deuxième et troisième paramètres facultatifs de type booléen. Lorsque le deuxième paramètre est égal à true, dans l'objet URL renvoyé par cette méthode, le champ de requête n'est plus une chaîne, mais un objet paramètre converti par le module querystring. Lorsque le troisième paramètre est égal à true, cette méthode peut analyser correctement les URL sans en-têtes de protocole, telles que //www.example.com/foo/bar.
À son tour, la méthode format permet de convertir un objet URL en chaîne URL, comme indiqué ci-dessous.
Copier le code Le code est le suivant :
url.format({
Protocole : 'http:',
Hôte : 'www.example.com',
Nom du chemin : '/p/a/t/h',
Rechercher : 'query=string'
});
/* =>
'http://www.example.com/p/a/t/h?query=string'
*/
De plus, la méthode .resolve peut être utilisée pour fusionner des URL, comme indiqué ci-dessous.
url.resolve('http://www.example.com/foo/bar', '../baz');
/* =>
http://www.example.com/baz
*/
Chaîne de requête
Le module querystring est utilisé pour convertir les chaînes de paramètres d'URL et les objets de paramètres les uns vers les autres. L'exemple est le suivant.
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='
*/