permintaan rangkaian tak segerak nodejs

王林
Lepaskan: 2023-05-18 09:59:07
asal
791 orang telah melayarinya

Node.js ialah persekitaran masa jalan JavaScript yang dibina pada enjin Chrome V8 Ia boleh menggunakan JavaScript untuk menulis atur cara pada bahagian pelayan, menyokong operasi I/O tak segerak dan sesuai untuk membina rangkaian berkonkurensi tinggi dan kependaman rendah. aplikasi. Apabila membangunkan aplikasi rangkaian menggunakan Node.js, menggunakan permintaan rangkaian tak segerak ialah titik teknikal yang sangat penting.

Artikel ini akan memperkenalkan pengetahuan dan kaedah pelaksanaan yang berkaitan bagi permintaan rangkaian tak segerak dalam Node.js.

1. Apakah permintaan rangkaian tak segerak

Sebelum memperkenalkan permintaan rangkaian tak segerak, mari kita fahami konsep penyegerakan dan tak segerak.

Operasi segerak bermaksud apabila melakukan operasi, anda mesti menunggu operasi sebelumnya selesai sebelum meneruskan ke operasi seterusnya. Seperti yang ditunjukkan dalam kod berikut:

var fs = require('fs');
var data = fs.readFileSync('file.txt');
console.log(data);
Salin selepas log masuk

Kod di atas adalah cara untuk membaca fail secara serentak Program akan mencetak data selepas membaca fail.

Operasi tak segerak bermaksud apabila melakukan operasi, anda boleh meneruskan ke operasi seterusnya tanpa menunggu operasi sebelumnya selesai. Seperti yang ditunjukkan dalam kod berikut:

var fs = require('fs');
fs.readFile('file.txt', function(err, data) {
    console.log(data);
});
Salin selepas log masuk

Kod di atas ialah cara untuk membaca fail secara tidak segerak Program akan melaksanakan kenyataan seterusnya selepas mula membaca fail tanpa menunggu bacaan fail selesai. Selepas bacaan selesai, fungsi panggil balik akan dilaksanakan, data baca akan dihantar ke fungsi panggil balik sebagai parameter, dan data akan dicetak keluar.

Operasi tak segerak adalah sangat penting semasa memproses permintaan rangkaian, kerana permintaan rangkaian melibatkan faktor seperti kelewatan rangkaian dan had lebar jalur, dan masa tindak balas permintaan berbeza adalah berbeza. Menggunakan operasi tak segerak boleh menggunakan sepenuhnya sumber CPU dan meningkatkan keupayaan pemprosesan serentak program.

2. Permintaan rangkaian tak segerak dalam Node.js

Dalam Node.js, terdapat banyak cara untuk melaksanakan permintaan rangkaian tak segerak. Dua kaedah biasa diperkenalkan di bawah.

  1. Modul http melaksanakan permintaan rangkaian tak segerak

Modul http ialah modul dalam Node.js yang digunakan khas untuk mengendalikan permintaan HTTP. Modul http menyediakan kaedah request() untuk menghantar permintaan HTTP dan fungsi panggil balik untuk memproses data respons pelayan.

Berikut ialah contoh kod untuk modul http untuk menghantar permintaan GET:

var http = require('http');

var options = {
    host: 'www.baidu.com',
    port: 80,
    path: '/'
};

http.request(options, function(response) {
    var str = '';
    response.on('data', function(chunk) {
        str += chunk;
    });
    response.on('end', function() {
        console.log(str);
    });
}).end();
Salin selepas log masuk

Dalam kod di atas, pilihan mentakrifkan parameter yang berkaitan untuk menghantar permintaan GET, termasuk hos sasaran, pelabuhan dan laluan permintaan. Kaedah request() mengembalikan objek strim boleh tulis yang boleh digunakan untuk menghantar permintaan HTTP. Apabila data respons tiba, objek respons mencetuskan peristiwa data Anda boleh mendaftarkan fungsi panggil balik peristiwa data melalui kaedah on() untuk membaca setiap blok data ke dalam penimbal. Pada penghujung pemindahan data, objek respons mencetuskan acara tamat Anda boleh mendaftarkan fungsi panggil balik acara tamat melalui kaedah on() Data penimbal baca boleh diproses dalam fungsi panggil balik.

  1. Modul permintaan melaksanakan permintaan rangkaian tak segerak

Modul permintaan ialah modul pihak ketiga dalam Node.js, digunakan untuk menghantar permintaan HTTP. Ia lebih ringkas dan lebih mudah untuk digunakan daripada modul http, mempunyai kebolehskalaan yang lebih kukuh, dan menyokong fungsi lanjutan seperti kuki, pengalihan semula dan proksi HTTP.

Untuk menggunakan modul permintaan, anda perlu memasang:

npm install request --save
Salin selepas log masuk

Selepas pemasangan selesai, anda boleh menggunakan modul permintaan dalam Node.js. Berikut ialah contoh kod yang menggunakan modul permintaan untuk menghantar permintaan GET:

var request = require('request');

request('http://www.baidu.com', function(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
});
Salin selepas log masuk

Dalam kod di atas, kaedah request() menghantar permintaan HTTP dan memproses data yang dikembalikan oleh pelayan dalam fungsi panggil balik . Kaedah request() menerima dua parameter, parameter pertama ialah URL yang diminta, dan parameter kedua ialah fungsi panggil balik. Parameter fungsi panggil balik ialah ralat, tindak balas dan badan tindak balas. Jika permintaan tidak mempunyai ralat dan kod status pemulangan ialah 200, badan respons dicetak pada konsol.

3. Kelebihan permintaan rangkaian tak segerak

Menggunakan permintaan rangkaian tak segerak mempunyai kelebihan berikut:

  1. Meningkatkan keupayaan pemprosesan serentak program

Permintaan rangkaian tak segerak boleh menggunakan sepenuhnya sumber CPU dan meningkatkan keupayaan pemprosesan serentak program.

  1. Kurangkan masa menunggu permintaan

Menggunakan permintaan rangkaian tak segerak boleh mengelakkan permintaan menunggu respons permintaan lain, dengan itu mengurangkan masa menunggu.

  1. Penggunaan sumber lebar jalur yang munasabah

Menggunakan permintaan rangkaian tak segerak boleh memulakan permintaan lain sementara menunggu respons kepada permintaan, dengan itu menggunakan sumber lebar jalur secara rasional.

4. Langkah berjaga-jaga untuk permintaan rangkaian tak segerak

Apabila menggunakan permintaan rangkaian tak segerak, sila beri perhatian kepada perkara berikut:

  1. Mengendalikan ralat

Permintaan rangkaian mungkin mempunyai ralat, seperti pemotongan rangkaian, tamat masa tindak balas pelayan, dsb. Oleh itu, pastikan anda mengendalikan kemungkinan ralat dalam permintaan dalam fungsi panggil balik.

  1. Tertib pelaksanaan fungsi panggil balik

Memandangkan permintaan rangkaian tak segerak tidak menyekat dan dipacu peristiwa, susunan pelaksanaan fungsi panggil balik tidak pasti. Jika berbilang permintaan rangkaian tak segerak dikeluarkan pada masa yang sama, susunan respons tidak boleh dijamin.

  1. Kawal bilangan permintaan serentak

Terlalu banyak permintaan serentak akan menduduki terlalu banyak sumber CPU, mengakibatkan tindak balas pelayan yang perlahan atau ralat. Oleh itu, apabila menghantar sejumlah besar permintaan rangkaian tak segerak, bilangan permintaan serentak mesti dikawal untuk mengelakkan menjejaskan operasi biasa pelayan.

5

Permintaan rangkaian tak segerak ialah titik teknikal yang sangat penting dalam Node.js. Artikel ini memperkenalkan pengetahuan dan kaedah pelaksanaan yang berkaitan bagi permintaan rangkaian tak segerak dalam Node.js. Menggunakan permintaan rangkaian tak segerak boleh meningkatkan keupayaan pemprosesan serentak program, mengurangkan masa menunggu permintaan dan menggunakan sumber lebar jalur secara rasional. Apabila menggunakan permintaan rangkaian tak segerak, beri perhatian kepada isu seperti pengendalian ralat, mengawal bilangan permintaan serentak dan susunan pelaksanaan fungsi panggil balik.

Atas ialah kandungan terperinci permintaan rangkaian tak segerak nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!