Pelayan http Node.js
Node.js membolehkan kami membuat pelayan dan klien dengan menggunakan API peringkat rendah modul HTTP. Apabila kita mula belajar nod, kita semua akan menemui kod berikut:
Kod ini termasuk maklumat tentang modul http, yang bermaksud:
1. Minta modul HTTP daripada teras `Node.js` dan tetapkan ia kepada pembolehubah untuk digunakan dalam skrip masa hadapan.
Skrip kemudiannya mempunyai akses kepada kaedah untuk menggunakan `HTTP` melalui `Node.js`.
2. Gunakan `createServer` untuk mencipta objek pelayan web baharu
3 Skrip menghantar fungsi tanpa nama kepada pelayan, memberitahu objek pelayan web perkara yang akan berlaku apabila ia menerima permintaan
4. Baris 4 skrip mentakrifkan port dan hos pelayan web, yang bermaksud anda boleh menggunakan `http://127.0.0.1:3000`
untuk mengakses pelayan
Pengepala HTTP
Untuk setiap permintaan dan respons HTTP, pengepala HTTP dihantar Pengepala HTTP menghantar maklumat tambahan, termasuk jenis kandungan, tarikh pelayan menghantar respons dan kod status HTTP
.Pengepala http mengandungi banyak maklumat Berikut ialah maklumat pengepala http yang terkandung dalam laman utama Baidu saya:
Memandangkan saya telah menambahkan lebih banyak tapak web pada halaman utama Baidu saya, data di sini mungkin berbeza daripada data pembaca. Daripada ini, kita dapat melihat bahawa pelayan web Baidu ialah BWS/1.1
Berikut ialah maklumat pengepala http kod di atas:
Ubah hala dalam Node.js
Dalam nod, kami boleh membuat pelayan ringkas dengan mudah untuk mengubah hala pelawat ke halaman web lain. Garis panduannya adalah seperti berikut:
1. Hantar kod respons 301 kepada pelanggan untuk memberitahu pelanggan bahawa sumber itu telah dipindahkan ke lokasi lain
2. Hantar pengepala lokasi untuk memberitahu pelanggan tempat untuk mengubah hala.
Kod yang berkaitan adalah seperti berikut:
Buka penyemak imbas dan lawati http://127.0.0.1:3000Halaman akan diubah hala.
Balas permintaan yang berbeza
Node.js bukan sahaja boleh mencipta satu respons, tetapi untuk berbilang jenis permintaan, kami perlu menambah beberapa laluan pada aplikasi. Node menjadikannya mudah dengan menggunakan modul URL. Modul URL membolehkan kami membaca URL, menghuraikannya dan kemudian melakukan sesuatu dengan output.
Kini kita boleh menganalisis URL yang diminta dan mengekstrak kandungan daripadanya, sebagai contoh, untuk mendapatkan nama hos yang boleh kita taip:
Pada masa ini, dia akan kembali ke "example.com"
Untuk mendapatkan nombor port, anda boleh memasukkan:
Modul Acara
Node.js dianggap sebagai cara terbaik untuk mencapai keselarasan. Modul Acara ialah teras Node.js dan digunakan oleh banyak modul lain untuk mengarkitek fungsi di sekitar acara. Memandangkan Node.js berjalan dalam satu utas, sebarang kod penyegerakan disekat. Oleh itu, kita perlu mempertimbangkan beberapa peraturan mudah semasa menulis kod Node.js:
1 Jangan sekat - `Node.js` adalah satu-benang, jika kod menyekat semua yang lain berhenti
2. Pulangan Pantas – Operasi harus kembali dengan cepat. Jika ia tidak dapat kembali dengan cepat, ia harus dialihkan ke proses lain
Modul Acara membolehkan pembangun menyediakan pendengar dan pengendali untuk acara. Dalam klien js, kita boleh menetapkan pendengar untuk acara klik dan kemudian melakukan sesuatu apabila peristiwa itu berlaku:
1. Maklum balas daripada pelayan web
2. Baca data daripada fail
3. Kembalikan data daripada pangkalan data
Untuk menggunakan modul Peristiwa kita perlu membuat contoh Pemancar Peristiwa baharu:
Untuk menerima mesej, anda mesti menambah pendengar, yang mengendalikan acara apabila ia dicetuskan, contohnya:
1. Kelas: acara.EventEmitter: Dapatkan kelas EventEmitter melalui require('events').EventEmitter.
2.emitter.on(event, listener): Tambahkan pendengar pada penghujung tatasusunan pendengar untuk acara tertentu. Pemancar pulangan untuk memudahkan panggilan berantai, perkara yang sama di bawah.
4.emitter.listeners(event) mengembalikan tatasusunan pendengar acara yang ditentukan
Untuk butiran lanjut, lihat: dokumentasi API Node.js
console.log(data);
});
console.log('mesej dimusnahkan!');
});
setTimeout(fungsi () {
secretMessage.emit('self destruct');
},5000);
Dalam skrip ini, dua acara dihantar dan terdapat dua pendengar. Apabila skrip dijalankan, peristiwa mesej berlaku dan dikendalikan oleh pengendali "mesej"
EventEmitter digunakan di mana-mana dalam Node.js, jadi adalah penting untuk menguasainya. Node.js memperoleh data melalui operasi I/O dan menggunakan modul Events secara meluas untuk menyokong pengaturcaraan tak segerak
Soalan Lazim:
S: Adakah terdapat had kepada bilangan maksimum pendengar untuk acara?
Jawapan: Secara lalai, jika acara mempunyai 10 pendengar yang beroperasi padanya, ia akan mengeluarkan amaran. Walau bagaimanapun, nombor ini boleh ditukar menggunakan emitter.setMaxListener(n)
S: Adakah mungkin untuk mendengar semua acara yang dihantar?
Jawapan: Tidak. Kami perlu mencipta pendengar untuk setiap acara yang ingin kami balas