Node.js ialah bahasa pengaturcaraan bahagian pelayan berdasarkan JavaScript Kemunculannya menjadikan pembangunan web lebih pantas dan cekap. Kelebihan utama Node.js ialah keupayaannya untuk mengendalikan operasi I/O serta kebolehsuaian, kebolehskalaan dan kemudahan penggunaannya. Dalam artikel ini, kami akan meneroka kaedah dan teknik tentang cara mengendalikan permintaan menggunakan Node.js.
1. Modul HTTP Node.js
Modul HTTP Node.js menyediakan cara untuk mengendalikan permintaan HTTP, yang boleh membantu anda membina pelayan web yang ringkas dan cekap. Modul HTTP mengandungi beberapa kelas, fungsi dan acara penting:
Berikut ialah contoh penggunaan modul HTTP untuk mencipta pelayan web:
const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World!'); }); server.listen(3000, () => { console.log('Server running at http://localhost:3000'); });
Kod di atas mencipta pelayan web yang berjalan pada port tempatan 3000. Setiap kali permintaan pelanggan Apabila pelayan menghantar permintaan, pelayan akan membalas "Hello World!"
2. Proses pemprosesan permintaan
Proses pemprosesan permintaan Node.js adalah sangat mudah, seperti yang ditunjukkan dalam rajah di bawah:
Seperti yang ditunjukkan dalam rajah di atas Menunjukkan bahawa apabila klien menghantar permintaan kepada pelayan Web, pelayan akan memanggil fungsi createServer dalam modul HTTP untuk mencipta contoh pelayan HTTP. Pada masa ini, pelayan akan mendengar port yang ditentukan dan menunggu permintaan sambungan pelanggan. Setelah klien mewujudkan sambungan, objek permintaan (permintaan) dibuat, yang mengandungi semua maklumat yang dihantar oleh klien, seperti pengepala permintaan, badan permintaan, dsb. Pelayan boleh memproses permintaan berdasarkan objek permintaan, menjana objek tindak balas (respon), dan menghantar objek tindak balas kepada klien Pelanggan menutup sambungan selepas menerima respons.
3. Memproses permintaan
Dalam Node.js, anda boleh mendapatkan pelbagai maklumat untuk memproses permintaan melalui objek req, termasuk pengepala permintaan, badan permintaan, dsb. Pada masa yang sama, kita juga perlu memahami konsep penghalaan (router) dalam Node.js. Penghalaan ialah cara untuk menentukan cara aplikasi bertindak balas terhadap permintaan, terutamanya termasuk laluan URL dan kaedah permintaan HTTP.
Berikut ialah contoh memproses permintaan Dapatkan dan Hantar:
const http = require('http'); const querystring = require('querystring'); http.createServer((req, res) => { let method = req.method; let url = req.url; let body = ''; req.on('data', (chunk) => { body += chunk; }); req.on('end', () => { let params; if (method == 'GET') { params = url.split('?')[1]; console.log(params); } else { params = querystring.parse(body); console.log(params); } res.end('Hello ' + params.name); }); }).listen(3000, () => { console.log('Server running at http://localhost:3000'); });
Kod di atas menunjukkan cara mengendalikan permintaan Dapatkan dan Siar dan menggunakan modul rentetan pertanyaan untuk menghuraikan kandungan permintaan. Apabila URL ialah http://localhost:3000/?name=Node.js, pelayan akan mengeluarkan "Hello Node.js". Apabila menghantar permintaan Post, pelayan akan mengeluarkan nilai atribut nama dalam badan permintaan.
4. Mengehadkan akses dan pengendalian ralat
Dalam pembangunan web, kita selalunya perlu menyekat akses dan pengendalian ralat pada pelayan. Node.js menyediakan beberapa modul terbina dalam untuk menyelesaikan tugasan ini, termasuk http-errors, cors, morgan dan helmet.
Ralat http: Boleh digunakan untuk membuat respons ralat HTTP, seperti 404, 500, dsb.
kor: boleh digunakan dalam perisian tengah untuk menyelesaikan masalah merentas domain.
morgan: Boleh digunakan untuk merekod maklumat log tentang setiap permintaan.
topi keledar: Anda boleh meningkatkan keselamatan pelayan, seperti dengan menambahkan maklumat pengepala HTTP untuk melindungi pelayan daripada serangan web tertentu.
Berikut ialah contoh penggunaan pengendalian ralat dan menyekat akses:
const http = require('http'); const createError = require('http-errors'); const express = require('express'); const cors = require('cors'); const morgan = require('morgan'); const helmet = require('helmet'); const app = express(); // 添加错误管理中间件 app.use((err, req, res, next) => { if (err && err.status == 404) { res.status(404).send('404 not found'); } else { res.status(500).send('500 Internal Server Error'); } }); // 使用中间件 app.use(cors()); app.use(morgan('combined')); app.use(helmet()); // 定义路由 app.get('/', (req, res) => { res.send('Hello World!'); }) // 监听端口 http.createServer(app).listen(3000, () => { console.log('Server running at http://localhost:3000'); });
Kod di atas menunjukkan cara menggunakan pengendalian ralat dan menyekat perisian tengah akses. Antaranya, perisian tengah seperti http-errors, cors, morgan, dan helmet boleh digunakan untuk meningkatkan keselamatan dan ketersediaan pelayan dan mengurangkan kerumitan kod.
Ringkasan
Artikel ini memperkenalkan kaedah dan teknik tentang cara menggunakan Node.js untuk mengendalikan permintaan, termasuk modul HTTP, proses pemprosesan permintaan, permintaan pemprosesan, pengehadan akses dan pengendalian ralat, dsb. Node.js telah membawa perubahan ketara kepada pembangunan web, yang boleh membantu pengaturcara memendekkan kitaran pembangunan dan meningkatkan kecekapan pembangunan. Jika anda masih mempunyai soalan tentang Node.js, anda boleh merujuk kepada dokumentasi rasmi atau melawati tapak web tutorial lain.
Atas ialah kandungan terperinci Kaedah dan teknik untuk mengendalikan permintaan menggunakan Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!