下面所要介绍的post请求方式相对安全,且对于get来说数据量更大,大得多。如图.上半部分为head部分,下半部分为content。
post数据接收
var http = require("http");
http.createServer(function(req,res){
var str = "";//接收数据用
var i=0;
//data有一段数据到达(重复很多次)
req.on('data',function(data){
console.log('第${i++}次接到数据');
str+=data;
});
//数据全部到达(一次)
req.on('end',function(){
var POST = querystring.parse(str);
console.log(POST);
});
}).listen(8080);
post很大,当数据量很大时是分段发送的,所以也要分段接收。
上列中接收到字符串并不是特别好。例如,要是发来图片、音乐等字符串就接收不了了。
融合GET POST fs
const http = require('http');
const urlLib = require('url');
const fs = require('fs');
const qureystring = require('qureystring');
var server=http.createServer(function(req,res){
//GET
var obj = urlLib.parse(req.url,true);
var url = obj.pathname;
var GET = obj.query;
//POST
var str = "";
req.on('data',function(data){
str+=data;
});
req.on('end',function(){
var POST = qureystring.parse(str);
consle.log(POST);
})
//文件请求
var failName="./www"+url;
fs.readFail(failName,function(err,data){
if(err){
res.write('404');
}else{
res.write(data);
}
res.end();
});
});
server.listen(8080);