Node.js, sebagai persekitaran berjalan JavaScript sebelah pelayan, adalah sangat biasa apabila memproses permintaan HTTP. Antaranya, menerima parameter permintaan jawatan adalah perkara yang sangat asas. Seterusnya, kita akan belajar cara menggunakan Node.js untuk menerima dan menghuraikan parameter permintaan pos.
1. Permintaan HTTP dalam Node.js
Dalam Node.js, kami boleh mencipta pelayan HTTP melalui modul http terbina dalam. Berikut ialah contoh mudah tentang cara membuat pelayan HTTP mudah:
const http = require('http'); const server = http.createServer((req, res) => { res.end('Hello World!'); }); server.listen(3000, () => { console.log('Server running at http://localhost:3000/'); });
Pelayan ini hanya membalas dengan rentetan Hello World!
. Kita boleh menggunakan perintah curl
untuk menguji:
curl http://localhost:3000/
Kita dapat melihat bahawa selepas menjalankan arahan curl, pelayan akan membalas dengan rentetan Hello World!
.
2. Hantar permintaan dalam permintaan HTTP
Dalam permintaan HTTP, permintaan GET dan permintaan POST ialah dua kaedah permintaan yang paling biasa dan asas. Untuk permintaan HTTP GET, parameternya akan dihantar dalam URL, manakala permintaan POST akan menghantar data pasangan nilai kunci dalam kandungan permintaan.
Sudah tentu, walaupun permintaan GET juga boleh membawa parameter dalam badan, kaedah ini tidak selamat. Permintaan POST boleh mengelakkan situasi ini.
3. Node.js mengendalikan permintaan POST
Apabila pelayan menerima permintaan POST, kita perlu mendapatkan parameter daripada badan permintaan. Berikut ialah cara paling biasa untuk mengendalikan permintaan POST menggunakan Node.js:
const http = require('http'); const server = http.createServer((req, res) => { if(req.method === 'POST') { let postData = ''; req.on('data', chunk => { postData += chunk.toString(); }); req.on('end', () => { console.log('postData:', postData); res.end('Hello World!'); }) } else { res.end('Hello World!'); } }); server.listen(3000, () => { console.log('Server running at http://localhost:3000/'); });
Idea utama di sini ialah apabila pelanggan menghantar permintaan POST, kami mendengar acara req
pada data
dan end
Acara, dalam acara data
, kami terus membaca kandungan permintaan dan menyimpan data dalam pembolehubah dalam bentuk rentetan. Selepas peristiwa end
dicetuskan, kami boleh memproses parameter yang diterima.
4. Menghuraikan parameter permintaan
Selepas mendapatkan parameter dalam permintaan POST, kita perlu menghuraikan parameter. Secara umumnya, parameter dalam permintaan POST dihantar dalam bentuk nilai kunci, iaitu gaya yang digunakan oleh data borang biasa kami.
Dalam Node.js, kita boleh menghuraikan parameter ini dengan menggunakan modul querystring
. Berikut ialah contoh:
const http = require('http'); const querystring = require('querystring'); const server = http.createServer((req, res) => { if(req.method === 'POST') { let postData = ''; req.on('data', chunk => { postData += chunk.toString(); }); req.on('end', () => { console.log('postData:', postData); const body = querystring.parse(postData); console.log('body:', body); res.end('Hello World!'); }) } else { res.end('Hello World!'); } }); server.listen(3000, () => { console.log('Server running at http://localhost:3000/'); });
Dalam contoh di atas, kami mula-mula menggunakan modul querystring
terbina dalam Node.js. Dalam acara end
, kami menghuraikan parameter POST yang diterima menggunakan kaedah querystring.parse()
, dan kemudian mengeluarkannya ke konsol untuk dilihat.
5 Gunakan Express untuk mengendalikan permintaan POST
Selain menggunakan modul http terbina dalam Node.js untuk mengendalikan permintaan POST, kami juga boleh menggunakan rangka kerja sebelah pelayan yang popular Express. . Dalam Express, kita boleh menggunakan body-parser
middleware untuk mengendalikan parameter dalam permintaan POST. Berikut ialah contoh menggunakan Express dan body-parser
:
const express = require('express'); const bodyParser = require('body-parser'); const app = express(); // 将JSON请求体解析中间件,放在路由之前 app.use(bodyParser.json()); // 处理URL编码请求体的中间件 app.use(bodyParser.urlencoded({extended: false})); app.post('/', (req, res) => { console.log('body:', req.body); res.send('Hello World!'); }); app.listen(3000, () => { console.log('Server running at http://localhost:3000/'); });
Dalam contoh ini, kami mula-mula menggunakan rangka kerja Express dan mengendalikan parameter dalam permintaan POST dengan menggunakan perisian tengah body-parser
. Dalam laluan post
, kita boleh mendapatkan terus parameter dalam permintaan POST melalui req.body
dan mengeluarkannya ke konsol dan respons.
Ringkasan
Untuk memproses permintaan POST dalam Node.js, kita perlu menggunakan modul http terbina dalam Node.js atau rangka kerja Express yang popular, dan kemudian melaksanakan penghuraian dan pemprosesan parameter. Untuk pemula, sebaiknya fahami dahulu cara menggunakan modul http dalam Node.js sebelum mempertimbangkan untuk menggunakan rangka kerja yang popular. Pada masa yang sama, apabila memproses permintaan POST, kami juga perlu mempertimbangkan isu keselamatan untuk memastikan bahawa parameter yang dihantar tidak akan diperoleh oleh pihak ketiga.
Atas ialah kandungan terperinci nodejs menerima parameter permintaan pos. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!