Rumah hujung hadapan web tutorial js Cipta pelayan nodejs dengan mudah (5): event handler_node.js

Cipta pelayan nodejs dengan mudah (5): event handler_node.js

May 16, 2016 pm 04:25 PM
nodejs pelayan

Untuk memberikan maklum balas yang berbeza kepada pengguna yang berbeza, kami memperkenalkan modul pengendali acara.

Modul ini dinamakan requestHandlers Kami mula-mula menambah dua fungsi pemegang tempat: mula() dan muat naik().

kod requestHandlers.js adalah seperti berikut:

Salin kod Kod adalah seperti berikut:

fungsi mula() {
console.log("Ini dipanggil semasa mengakses /star.");
}

muat naik fungsi() {
console.log("Ini dipanggil semasa mengakses /muat naik.");
}

exports.start = mula;
exports.upload = muat naik;

Dalam aplikasi sebenar, bilangan pengendali permintaan akan terus meningkat, dan kami pastinya tidak mahu perlu melengkapkan permintaan dalam laluan setiap kali terdapat URL baharu atau pengendali permintaan

Memetakan kepada pengendali dan melemparkannya berulang kali.

Selain itu, kami tidak mahu mempunyai banyak if request == x kemudian panggil pengendali y dalam penghalaan, yang akan menjadikan kod kelihatan kemas dan tidak profesional.

Di sini saya akan menggunakan konsep tatasusunan bersekutu untuk mengendalikan keperluan ini Kami menghantar satu siri pengendali permintaan melalui objek, dan kami perlu menyuntik objek ini ke dalam fungsi route() dengan cara yang longgar.

Kami mula-mula memperkenalkan objek ini ke dalam index.js fail utama:

Salin kod Kod adalah seperti berikut:

var pelayan = memerlukan("./server");
var penghala = memerlukan("./penghala");
var requestHandlers = memerlukan("./requestHandlers");

pemegang var = {};
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;

server.start(router.route, handle);

Contohnya, jika saya ingin menambah pemetaan /show, cuma tambah handle["/show"] requestHandlers.show dan itu sahaja;

Haha, adakah ini menjadikan kod lebih ringkas dan teratur? !

Seterusnya kami menghantar objek pemegang ke pelayan dan mengubah suai server.js seperti berikut:

Salin kod Kod adalah seperti berikut:
var http = memerlukan("http");
var url = memerlukan("url");
mulakan fungsi(laluan, pemegang) {
fungsi onRequest(permintaan, respons) {
var pathname = url.parse(request.url).pathname;
Console.log("Permintaan untuk " nama laluan " diterima.");
laluan(penangan, nama laluan);
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Pelayan telah bermula.");
}
exports.start = mula;

Ubah suai fungsi route() dalam fail route.js:

Salin kod Kod adalah seperti berikut:
laluan fungsi(pemegang, nama laluan) {
console.log("Tentang menghalakan permintaan untuk " nama laluan);
if (jenis pemegang[nama laluan] === 'fungsi') {
mengendalikan[pathname]();
} lain {
console.log("Tiada pengendali permintaan ditemui untuk " nama laluan);
}
}
exports.route = laluan;

Kami menghantar objek pemegang ke pelayan sebagai parameter, yang kemudiannya diterima oleh penghala Akhirnya, penghala menentukan sama ada pengendali permintaan yang sepadan dengan laluan semasa wujud Jika ia wujud, fungsi yang sepadan dipanggil.

Kita boleh mendapatkan fungsi pemprosesan permintaan daripada objek yang diluluskan dengan cara yang sama seperti mendapatkan elemen daripada tatasusunan bersekutu, jadi kita mempunyai ungkapan yang mudah dan lancar seperti handle[pathname]();, yang terasa seperti Seperti yang dinyatakan sebelum ini: "Hei, tolong saya dengan jalan ini".

Dengan cara ini, kami boleh mengendalikan permintaan yang berbeza secara berbeza.

Dalam bahagian seterusnya kami akan mengubah suai kod untuk membolehkan pelayan melaksanakan beberapa operasi maklum balas sebenar.

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Perbezaan antara nodejs dan vuejs Perbezaan antara nodejs dan vuejs Apr 21, 2024 am 04:17 AM

Node.js ialah masa jalan JavaScript bahagian pelayan, manakala Vue.js ialah rangka kerja JavaScript sisi klien untuk mencipta antara muka pengguna interaktif. Node.js digunakan untuk pembangunan bahagian pelayan, seperti pembangunan API perkhidmatan belakang dan pemprosesan data, manakala Vue.js digunakan untuk pembangunan sisi klien, seperti aplikasi satu halaman dan antara muka pengguna yang responsif.

Adakah nodejs rangka kerja bahagian belakang? Adakah nodejs rangka kerja bahagian belakang? Apr 21, 2024 am 05:09 AM

Node.js boleh digunakan sebagai rangka kerja bahagian belakang kerana ia menawarkan ciri seperti prestasi tinggi, kebolehskalaan, sokongan merentas platform, ekosistem yang kaya dan kemudahan pembangunan.

Apakah perbezaan antara fail npm dan npm.cmd dalam direktori pemasangan nodejs? Apakah perbezaan antara fail npm dan npm.cmd dalam direktori pemasangan nodejs? Apr 21, 2024 am 05:18 AM

Terdapat dua fail berkaitan npm dalam direktori pemasangan Node.js: npm dan npm.cmd Perbezaannya adalah seperti berikut: sambungan berbeza: npm ialah fail boleh laku dan npm.cmd ialah pintasan tetingkap arahan. Pengguna Windows: npm.cmd boleh digunakan daripada command prompt, npm hanya boleh dijalankan dari baris arahan. Keserasian: npm.cmd adalah khusus untuk sistem Windows, npm tersedia merentas platform. Cadangan penggunaan: Pengguna Windows menggunakan npm.cmd, sistem pengendalian lain menggunakan npm.

Adakah nodejs bahasa pembangunan bahagian belakang? Adakah nodejs bahasa pembangunan bahagian belakang? Apr 21, 2024 am 05:09 AM

Ya, Node.js ialah bahasa pembangunan bahagian belakang. Ia digunakan untuk pembangunan bahagian belakang, termasuk mengendalikan logik perniagaan sebelah pelayan, mengurus sambungan pangkalan data dan menyediakan API.

Apakah pembolehubah global dalam nodejs Apakah pembolehubah global dalam nodejs Apr 21, 2024 am 04:54 AM

Pembolehubah global berikut wujud dalam Node.js: Objek global: modul Teras global: proses, konsol, memerlukan pembolehubah persekitaran Runtime: __dirname, __filename, __line, __column Constants: undefined, null, NaN, Infinity, -Infinity

Bagaimana untuk menyambungkan nodejs ke pangkalan data mysql Bagaimana untuk menyambungkan nodejs ke pangkalan data mysql Apr 21, 2024 am 06:13 AM

Untuk menyambung ke pangkalan data MySQL, anda perlu mengikuti langkah berikut: Pasang pemacu mysql2. Gunakan mysql2.createConnection() untuk mencipta objek sambungan yang mengandungi alamat hos, port, nama pengguna, kata laluan dan nama pangkalan data. Gunakan connection.query() untuk melaksanakan pertanyaan. Akhir sekali gunakan connection.end() untuk menamatkan sambungan.

Mana satu untuk dipilih antara nodejs dan java? Mana satu untuk dipilih antara nodejs dan java? Apr 21, 2024 am 04:40 AM

Node.js dan Java masing-masing mempunyai kebaikan dan keburukan dalam pembangunan web, dan pilihan bergantung pada keperluan projek. Node.js cemerlang dalam aplikasi masa nyata, pembangunan pesat dan seni bina perkhidmatan mikro, manakala Java cemerlang dalam sokongan, prestasi dan keselamatan gred perusahaan.

Adakah terdapat perbezaan besar antara nodejs dan java? Adakah terdapat perbezaan besar antara nodejs dan java? Apr 21, 2024 am 06:12 AM

Perbezaan utama antara Node.js dan Java ialah reka bentuk dan ciri: Didorong peristiwa vs. didorong benang: Node.js dipacu peristiwa dan Java dipacu benang. Satu-benang vs. berbilang benang: Node.js menggunakan gelung acara satu-benang dan Java menggunakan seni bina berbilang benang. Persekitaran masa jalan: Node.js berjalan pada enjin JavaScript V8, manakala Java berjalan pada JVM. Sintaks: Node.js menggunakan sintaks JavaScript, manakala Java menggunakan sintaks Java. Tujuan: Node.js sesuai untuk tugas intensif I/O, manakala Java sesuai untuk aplikasi perusahaan besar.

See all articles