URL-Modul
Das URL-Modul wird häufig bei der Verarbeitung von HTTP-Anfragen verwendet, da dieses Modul das Parsen von URLs, das Generieren von URLs und das Spleißen von URLs ermöglicht. Schauen wir uns zunächst die Bestandteile einer vollständigen URL an.
href
-------------------------------------------------- ---------------
Hostpfad
-------------------------------------------------- -------------------------------------------------- -----------
http: // user:pass @ host.com : 8080 /p/a/t/h ?query=string #hash
----- --------- -------- ---- -------- ------------- --- --
Protokoll Authentifizierung Hostname Port Pfadname Such-Hash
Seit
Abfrage
Wir können die .parse-Methode verwenden, um eine URL-Zeichenfolge in ein URL-Objekt umzuwandeln. Das Beispiel sieht wie folgt aus.
url.parse('http://user:pass@host.com:8080/p/a/t/h?query=string#hash');
/* =>
{ Protokoll: 'http:',
auth: 'user:pass',
host: 'host.com:8080',
Port: '8080',
Hostname: 'host.com',
Hash: '#hash',
Suche: '?query=string',
Abfrage: 'query=string',
Pfadname: '/p/a/t/h',
Pfad: '/p/a/t/h?query=string',
href: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash' }
*/
Was an die .parse-Methode übergeben wird, muss keine vollständige URL sein. Beispielsweise enthält request.url in der HTTP-Server-Rückruffunktion nicht den Protokollheader und den Domänennamen, kann aber auch mit .parse analysiert werden Verfahren.
http.createServer(Funktion (Anfrage, Antwort) {
var tmp = request.url; // => "/foo/bar?a=b"
url.parse(tmp);
/* =>
{ Protokoll: null,
Schrägstriche: null,
Auth: null,
Host: null,
Port: null,
Hostname: null,
Hash: null,
Suche: '?a=b',
Abfrage: 'a=b',
Pfadname: '/foo/bar',
Pfad: '/foo/bar?a=b',
href: '/foo/bar?a=b' }
*/
}).listen(80);
Die .parse-Methode unterstützt auch zweite und dritte optionale Parameter vom Typ Boolean. Wenn der zweite Parameter gleich „true“ ist, ist das Abfragefeld im von dieser Methode zurückgegebenen URL-Objekt keine Zeichenfolge mehr, sondern ein vom Querystring-Modul konvertiertes Parameterobjekt. Wenn der dritte Parameter gleich „true“ ist, kann diese Methode URLs ohne Protokollheader korrekt analysieren, z. B. //www.example.com/foo/bar.
Die Formatmethode ermöglicht wiederum die Konvertierung eines URL-Objekts in eine URL-Zeichenfolge, wie unten gezeigt.
Code kopieren Der Code lautet wie folgt:
url.format({
Protokoll: 'http:',
Host: „www.example.com“,
Pfadname: '/p/a/t/h',
Suche: 'query=string'
});
/* =>
'http://www.example.com/p/a/t/h?query=string'
*/
Darüber hinaus kann die .resolve-Methode zum Zusammenfügen von URLs verwendet werden, wie unten gezeigt.
url.resolve('http://www.example.com/foo/bar', '../baz');
/* =>
http://www.example.com/baz
*/
Abfragezeichenfolge
Das Querystring-Modul wird verwendet, um URL-Parameterzeichenfolgen und Parameterobjekte ineinander und voneinander zu konvertieren. Das Beispiel sieht wie folgt aus.
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='
*/