modul url
Modul url sangat digunakan semasa memproses permintaan HTTP, kerana modul ini membenarkan menghuraikan URL, menjana URL dan menyambung URL. Mula-mula mari kita lihat komponen URL lengkap.
href
------------------------------------------------- ---------------
laluan hos
------------------------------------------------- ------------------------------------------------- -----------
http: // user:pass @ host.com : 8080 /p/a/t/h ?query=string #hash
----- --------- -------- ---- -------- ------------- --- --
protokol auth nama hos port nama laluan cincang carian
Sejak
pertanyaan
Kita boleh menggunakan kaedah .parse untuk menukar rentetan URL kepada objek URL Contohnya adalah seperti berikut.
url.parse('http://user:pass@host.com:8080/p/a/t/h?query=string#hash');
/* =>
{ protokol: 'http:',
auth: 'pengguna:lulus',
hos: 'host.com:8080',
port: '8080',
nama hos: 'host.com',
cincang: '#cincang',
cari: '?query=string',
pertanyaan: 'query=string',
nama laluan: '/p/a/t/h',
laluan: '/p/a/t/h?query=string',
href: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash' }
*/
Perkara yang dihantar kepada kaedah .parse tidak semestinya URL lengkap Contohnya, dalam fungsi panggil balik pelayan HTTP, request.url tidak mengandungi pengepala protokol dan nama domain, tetapi ia juga boleh dihuraikan menggunakan .parse. kaedah.
http.createServer(fungsi (permintaan, respons) {
var tmp = request.url; // => "/foo/bar?a=b"
url.parse(tmp);
/* =>
{ protokol: batal,
garis miring: batal,
auth: batal,
Hos: batal,
Pelabuhan: null,
Nama hos: null,
cincang: null,
Cari: '?a=b',
Pertanyaan: 'a=b',
Nama laluan: '/foo/bar',
Laluan: '/foo/bar?a=b',
href: '/foo/bar?a=b' }
*/
}).dengar(80);
Kaedah .parse juga menyokong parameter pilihan kedua dan ketiga jenis Boolean. Apabila parameter kedua adalah sama dengan benar, dalam objek URL yang dikembalikan oleh kaedah ini, medan pertanyaan bukan lagi rentetan, tetapi objek parameter ditukar oleh modul rentetan pertanyaan. Apabila parameter ketiga adalah sama dengan benar, kaedah ini boleh menghuraikan URL dengan betul tanpa pengepala protokol, seperti //www.example.com/foo/bar.
Seterusnya, kaedah format membenarkan menukar objek URL kepada rentetan URL, seperti yang ditunjukkan di bawah.
Salin kod Kod adalah seperti berikut:
url.format({
Protokol: 'http:',
Hos: 'www.example.com',
Nama laluan: '/p/a/t/h',
Cari: 'query=string'
});
/* =>
'http://www.example.com/p/a/t/h?query=string'
*/
Selain itu, kaedah .resolve boleh digunakan untuk menyambung URL, seperti yang ditunjukkan di bawah.
url.resolve('http://www.example.com/foo/bar', '../baz');
/* =>
http://www.example.com/baz
*/
Rentetan Pertanyaan
Modul rentetan pertanyaan digunakan untuk menukar rentetan parameter URL dan objek parameter kepada dan daripada satu sama lain Contoh adalah seperti berikut.
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='
*/