nodejs——http数据解析post

下面所要介绍的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);

猜你喜欢

转载自blog.csdn.net/gaoshanyangzhi_1999/article/details/82974121