通過get和post方式獲取提交的表單數據
1,通過get方法,解析參數:
通過get方法請求解析參數,通過nodejs原生內置模塊url的url.parse()方法,將get請求的url傳入,url.parse()方法會自動解析URL路徑;
//導入http模塊 const http = require('http') //導入url模塊,獲取get請求參數 const url = require('url') //創建服務器 const server = http.createServer() //開啟服務器 server.on('request', (req, res) => { //通過url.parse()方法,將get請求的URL傳入 var params = url.parse(req.url,true).query;//加上true參數表示返回json數據格式,否則默認為字符串, console.log(params); }) server.listen(8080, () => { console.log('http://127.0.01:8080/user'); })
url.parse()可以將一個完整的URL地址以JSON對象 返回,里面都是get請求方式的相關信息,代碼如下:
var url=require('url'); var path="http://localhost:8888/index?name=bob&password=123456"; var query=url.parse(path); console.log(query);
對比得知,url.parse(path,true);
加了true 后 ,JSON對象的 query中的query 由原來的字符串變成了對象,這在Node的官方文檔也有說:
2,通過POST方法,解析參數:
//導入http模塊 var http = require('http'); //導入querystring內置模塊,解析post請求參數 var querystring = require('querystring'); http.createServer(function(req, res){ // 定義了一個post變量,用於暫存請求體的信息 var post = ''; // 通過req的data事件監聽函數,每當接受到請求體的數據,就累加到post變量中 req.on('data', function(chunk){ post += chunk; }); // 在end事件觸發后,通過querystring.parse將post解析為真正的POST請求格式,然后向客戶端返回。 req.on('end', function(){ post = querystring.parse(post); res.end(util.inspect(post)); }); }).listen(3000);