Cipta pelayan nodejs dengan mudah (5): event handler_node.js
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:
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:
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:
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;
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;
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.

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

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.

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.

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.

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.

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

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.

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.

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.
