Permintaan Node.js GET/POST
Dalam banyak senario, pelayan kami perlu berurusan dengan penyemak imbas pengguna, seperti penyerahan borang.
Borang yang diserahkan kepada pelayan biasanya menggunakan permintaan GET/POST.
Dalam bab ini kami akan memperkenalkan permintaan Node.js GET/POST kepada anda.
Dapatkan kandungan permintaan GET
Memandangkan permintaan GET dibenamkan terus dalam laluan, URL ialah laluan permintaan yang lengkap, termasuk bahagian selepas ?, jadi anda boleh menghuraikan secara manual bahagian berikut Kandungan sebagai parameter permintaan GET.
Fungsi parse dalam modul url dalam node.js menyediakan fungsi ini.
var http = require('http'); var url = require('url'); var util = require('util'); http.createServer(function(req, res){ res.writeHead(200, {'Content-Type': 'text/plain'}); res.end(util.inspect(url.parse(req.url, true))); }).listen(3000);
Lawati http://localhost:3000/user?name=w3c&email=w3c@w3cschool.cc
dalam penyemak imbas dan lihat hasil yang dikembalikan:
Dapatkan kandungan permintaan POST
Semua kandungan Permintaan POST ada Di dalam badan permintaan, http.ServerRequest tidak mempunyai kandungan atribut sebagai badan permintaan Sebabnya menunggu badan permintaan dihantar mungkin menjadi tugas yang memakan masa.
Sebagai contoh, semasa memuat naik fail, kami mungkin tidak perlu memberi perhatian kepada kandungan badan permintaan dalam banyak kes permintaan POST Berniat jahat akan menggunakan sumber pelayan dengan banyak secara lalai. Anda perlu melakukannya secara manual apabila anda perlu.
var http = require('http'); var querystring = require('querystring'); var util = require('util'); http.createServer(function(req, res){ var post = ''; //定义了一个post变量,用于暂存请求体的信息 req.on('data', function(chunk){ //通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中 post += chunk; }); req.on('end', function(){ //在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回。 post = querystring.parse(post); res.end(util.inspect(post)); }); }).listen(3000);