Node.js ialah persekitaran masa jalan JavaScript sumber terbuka yang semakin popular dengan ekosistem yang besar dan komuniti aktif. Antaranya, modul HTTP Node.js menyediakan antara muka yang ringkas dan mudah digunakan, menjadikannya sangat mudah untuk mencipta pelayan web. Walau bagaimanapun, program web selalunya perlu memintas permintaan Sebelum memproses permintaan, permintaan mesti ditapis, disahkan, diubah suai, dll. Pada masa ini, memintas permintaan itu perlu digunakan. Dalam artikel ini, kami akan menerangkan cara memintas permintaan menggunakan Node.js.
1. Apakah pemintasan permintaan?
Pemintasan permintaan merujuk kepada operasi mengubah suai atau menapis permintaan sebelum pelanggan memulakan permintaan kepada pelayan ubah suai permintaan, rekod permintaan log, dsb.
2. Mengapa meminta pemintasan diperlukan
Dalam pembangunan sebenar, kami sering perlu memintas permintaan ini kerana:
3. Laksanakan pemintasan permintaan
Untuk melaksanakan pemintasan permintaan dalam Node.js, anda perlu menggunakan acara permintaan dalam modul http.
Pertama, kita perlu memperkenalkan modul http:
const http = require('http');
Kemudian, kita boleh mencipta pelayan HTTP dan mendengar acara permintaan untuk melaksanakan pemintasan permintaan:
http.createServer((req, res) => { // 请求拦截代码 // ... }).listen(8080, ()=>{ console.log(`Server is running on port 8080`); })
Sebelum memintas permintaan, Kami perlu menghuraikan parameter permintaan terlebih dahulu. Node.js disertakan dengan modul rentetan pertanyaan yang menghuraikan parameter permintaan Kami boleh menggunakannya untuk menghuraikan parameter permintaan. Contohnya:
const queryString = require('querystring'); const postData = []; req.on('data', chunk => { postData.push(chunk); }); req.on('end', () => { const postParams = queryString.parse(Buffer.concat(postData).toString()); console.log(postParams); });
Kod di atas boleh mendengar data dan acara tamat permintaan, menghuraikan parameter permintaan dalam permintaan POST dan mencetaknya.
Seterusnya, kita boleh menulis kod yang berkaitan untuk memintas permintaan.
Kita boleh mendapatkan laluan yang diminta melalui req.url. Jika laluan tidak memenuhi keperluan, kami boleh mengembalikan mesej ralat atau melompat ke halaman yang ditentukan.
Sebagai contoh, kod berikut memintas semua permintaan dengan laluan /bad dan mengembalikan halaman ralat:
if(req.url === '/bad') { res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'}); res.write('<h1>出错了!</h1>'); res.end(); }
kami Parameter boleh disahkan dengan menghuraikan parameter permintaan. Jika parameter tidak memenuhi keperluan, kami boleh mengembalikan mesej ralat atau melompat ke halaman yang ditentukan.
Sebagai contoh, kod berikut memintas semua permintaan yang tidak mengandungi nama pengguna dalam parameter dan mengembalikan halaman ralat:
const queryString = require('querystring'); const postData = []; req.on('data', chunk => { postData.push(chunk); }); req.on('end', () => { const postParams = queryString.parse(Buffer.concat(postData).toString()); if(!postParams.username) { res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'}); res.write('<h1>出错了!</h1>'); res.end(); } });
kami Anda boleh mengubah suai parameter permintaan untuk mencapai kesan pemprosesan yang diingini. Sebagai contoh, kod berikut menukar nama pengguna dalam parameter permintaan kepada huruf besar dan mengembalikan hasilnya:
const queryString = require('querystring'); const postData = []; req.on('data', chunk => { postData.push(chunk); }); req.on('end', () => { const postParams = queryString.parse(Buffer.concat(postData).toString()); postParams.username = postParams.username.toUpperCase(); res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'}); res.write(`<h1>您好,${postParams.username}!</h1>`); res.end(); });
IV Ringkasan
Dalam artikel ini, kami memperkenalkan apa itu pemintasan permintaan dan mengapa Perlu. gunakan pemintasan permintaan. Pada masa yang sama, kami juga menyediakan kod yang berkaitan untuk menggunakan Node.js untuk melaksanakan pemintasan permintaan, termasuk laluan memintas, mengesahkan parameter permintaan, mengubah suai parameter permintaan, dsb. Jika anda perlu memintas permintaan dalam pembangunan sebenar, anda mungkin ingin merujuk kepada kod dalam artikel ini untuk melaksanakannya.
Atas ialah kandungan terperinci permintaan memintas nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!