Rumah > Artikel > hujung hadapan web > permintaan pelanggan nodejs
Node.js ialah persekitaran berjalan JavaScript yang sangat popular yang boleh menjalankan kod JavaScript pada bahagian pelayan. Oleh kerana Node.js mempunyai kelajuan pembangunan yang pantas, prestasi yang baik dan sesuai untuk sistem teragih, ia mempunyai rangkaian aplikasi yang sangat luas dalam bidang pembangunan web dan pengkomputeran awan. Artikel ini akan memperkenalkan cara menggunakan Node.js sebagai klien untuk membuat permintaan HTTP kepada pelayan.
Dalam Node.js, kami boleh menggunakan modul http terbina dalam untuk membuat permintaan HTTP. Modul http boleh membuat dan menghantar permintaan HTTP dan memproses data tindak balas dengan mudah. Berikut ialah contoh mudah yang menunjukkan cara menggunakan modul http untuk membuat permintaan HTTP GET:
const http = require('http'); http.get('http://www.example.com', (res) => { console.log(`Got response: ${res.statusCode}`); res.on('data', (chunk) => { console.log(`Received data: ${chunk}`); }); }).on('error', (e) => { console.error(`Error: ${e.message}`); });
Dalam kod, kaedah http.get() menerima rentetan URL dan fungsi panggil balik sebagai parameter. Apabila fungsi panggil balik dipanggil, objek tindak balas dihantar ke res parameter pertamanya. Kita boleh mendapatkan kod status respons dengan mengakses atribut statusCode objek res, dan menerima data respons dengan mendengar peristiwa data objek res.
Selain kaedah http.get(), modul http juga menyediakan kaedah http.request(), yang boleh mengendalikan permintaan HTTP POST dan pengepala permintaan tersuai. Berikut ialah contoh dengan permintaan POST dan pengepala permintaan tersuai:
const http = require('http'); const options = { hostname: 'www.example.com', port: 80, path: '/post', method: 'POST', headers: { 'Content-Type': 'application/json' } }; const req = http.request(options, (res) => { console.log(`statusCode: ${res.statusCode}`); res.on('data', (d) => { process.stdout.write(d); }); }); req.on('error', (error) => { console.error(error); }); req.write(JSON.stringify({ hello: 'world' })); req.end();
Dalam kod, kami menggunakan kaedah http.request() untuk mencipta objek HTTPRequest dan menetapkan beberapa pilihan permintaan. Antaranya, pilihan pengepala menentukan bahawa Jenis Kandungan yang diminta ialah aplikasi/json.
Kemudian, kami menggunakan kaedah req.write() untuk menulis beberapa data ke dalam badan permintaan. Akhir sekali, kami memanggil kaedah req.end() untuk menamatkan operasi permintaan.
Di atas menerangkan cara menggunakan modul http sebagai klien untuk membuat permintaan HTTP kepada pelayan. Dalam aplikasi sebenar, kami mungkin perlu memulakan pelbagai jenis permintaan HTTP dalam senario yang berbeza. Sebagai contoh, kami mungkin perlu menghantar permintaan berbilang bahagian/data-borang untuk memuat naik fail, atau kami perlu menghantar permintaan permohonan/x-www-form-urlencoded untuk menyerahkan data borang. Dalam kes ini, kita boleh menggunakan modul pihak ketiga seperti permintaan atau aksios untuk memudahkan operasi.
Modul permintaan mudah digunakan dan berkuasa, menyokong berbilang jenis permintaan HTTP dan pengepala permintaan tersuai, kuki, dsb. Berikut ialah contoh penggunaan modul permintaan:
const request = require('request'); request('http://www.example.com/', function (error, response, body) { console.log('error:', error); console.log('statusCode:', response && response.statusCode); console.log('body:', body); });
Dalam kod, kami menggunakan kaedah request() untuk membuat permintaan HTTP GET untuk mendapatkan respons daripada www.example.com. Dalam fungsi panggil balik, kita boleh mengakses kod status respons melalui response.statusCode dan kandungan respons melalui badan.
Modul axios juga sangat mudah digunakan, berkuasa, dan mempunyai kaedah Promise-like then() dan catch(). Berikut ialah contoh menggunakan modul axios:
const axios = require('axios'); axios.get('http://www.example.com/') .then(function (response) { console.log('statusCode:', response.status); console.log('headers:', response.headers); console.log('data:', response.data); }) .catch(function (error) { console.log('error:', error.message); console.log('response:', error.response.data); });
Dalam kod, kami menggunakan kaedah axios.get() untuk membuat permintaan HTTP GET dan memproses respons dalam fungsi then(). Jika permintaan gagal, kami mengendalikan ralat dalam fungsi catch(). Melalui sifat respons.status, response.headers dan response.data, kami boleh mengakses kod status respons, pengepala respons dan kandungan respons masing-masing.
Untuk meringkaskan, sangat mudah untuk membuat permintaan HTTP menggunakan Node.js sebagai pelanggan. Dalam kes paling mudah, kami boleh menggunakan modul http terbina dalam untuk menghantar permintaan HTTP GET. Untuk tugas yang lebih kompleks, seperti menghantar permintaan berbilang bahagian/data bentuk atau pengepala/badan permintaan tersuai, kami boleh menggunakan modul pihak ketiga seperti permintaan atau aksios untuk memudahkan operasi.
Atas ialah kandungan terperinci permintaan pelanggan nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!