这是我参加8月更文应战的第9天,活动详情查看:8月更文应战

用户发送数据央求的时分,常见的办法是GETPOST央求,无论是发送GET仍是POST,其数据都在央求内容方针request

  1. 获取GET服务器装备据的三种办法

get数据发送的时HTTP分都是在request.https和htthttpwatchp的差异url中的,request标明央求的内容方针,里边包含了许多央求相关的信息。

办法一:手动切

经过字符串中的split办法url字符串中的央求服务器装备数据切成json格局

const http=服务器require("httphttp://www.bai服务器du.com");//json数据引入http模块
http.crejson是什么意思服务器租借ateServer(function(JSONreq,res){服务器租借多少钱一年//经过http模块方针创建服务器
//req获服务器装备取前台发的数据
var GET ={}JSON;
if (req.url.indexOf('?')!=-1) {
var arr = req.url.sp服务器lit('?');
var ujson格局rl=arr[0];服务器系统//地址
var arr2 = arr[1]服务服务器器和电脑主机的差异.split('http 500&');
for (var i = 0;JSON i < arr2.length; i++) {
var arrjson格局3 = a服务器是什么rr2[i].split('=');
GET[arr3[0]]=arr3[1];
}
}else{
var url=req服务器宕机.url;
//http://192.168.1.1登录 GET={}
}
console.lHTTPog(url,GET);
res.writJSONe("aaa");//照顾写在页面上的内容
res.endhttp协议();//完毕照顾
}).listen(808服务器和电脑主机的差异0);//要个端口并监听

办法二:运用querystring模块

querystringhttp相同都是nHTTPode自带的模块,经过querystring自带的parse办法服务器地址在哪里看,能够将查询字符串变成http://www.baidu.comjshttp 302on办法

const hhttp署理ttp = require('http');
const querysjson格局trihttp://192.168.1.1登录ng=require服务器租借('querystring');
http.createServer(function(req,res){
var GET={};
if (req.url.indexOf('?')!=-1) {
var arr=rHTTPeq.url.json格局怎样翻开json字符串spl服务器地址在哪里看it('?')http协议;
var url = arr[0];
GET=querysjson字符串tring.parse(arr[服务器1]);//
}else{
var url=req.url;
}
console.log(Ghttp署理ET);
reshttp 302.write('aaaa');
res.end();
}).listen(8080);

办法三:运用url模块

url也是node自带的一个模服务器怎样搭建块,能够运用url模块中的par服务器地址在哪里看sejson字符串法,将整个url解析成一个方针,其间query特色对应的便是我们要的GET数据,第二个参数HTTPtrue会主动解析为json办法

const http = require('http');
const urlLib = require('url');
var GET={};
http.createServJSONer(f服务器租借unction(req,rhttp署理es){
var obj服务器装备=ur服务器iplLib.parse(r服务器宕机eq.url,true);
var url=obj.pathname;
var GET=obj.query;
consolehttp://192.168.1.1登录.log(url,GET);
res.write('aaaaa');
res.enjson接口回http署理来过失d();
}).listen(服务器租借8080);

以上三种办法http署理获取GET央求的数据,引荐运用第三种

  1. 获取POST央求的数据

GET数据比较,POST数据量大,得分段。经过req.on('data',functionjson是什么意思(data){})监听,json接口回来过失当有一段数json是什么意思据抵达的时分施行回调,回调函数参数datjson文件是干什么的a为每段抵达的数据。当数据悉数json格局抵达时会触发req.on('end',functhttp署理ion(){服务器ip})http://192.168.1.1登录里边的回调函数。能够经过querystr服务器是什么ing.parjson字符串se(str)解析成我们想要的POST央求数据格局

var http=require('http');
vjsonar queJSONrjson文件是干什么的ystring=require('q服务器装备uerystring');
http.creatjson接口回来过失eServer(function(req,res){
var str='';
var i=0;
req.on('data',function(data){
console.log(`第${++i}次收到数据`);
str+=data;
});//当有一段数据抵达的时分
req.on('end',服务器装备fun服务器怎样树立ction(){
var POST=http署理querystring.parse(str);
console.log(Pjson接口回来过失OST服务器);
});//数据悉数抵json数据服务器装备
}).listen(8080);
  1. 文件的读写

经过fs模块http协议完毕文件的读取,里边有个readFile(要读取的文件,回调函数)用于读取文件,读取完毕施行回调

针对三种央求:央求文件或许get央求或许post央求,我们来树立一个无缺http 500一点的服务器雏形

//引入相应模块
const httjson解析p服务器系统=require('http');/服务器怎样树立/http协议相关
const fs=require('fshttp://192.168.1.1登录');//文件系统相关
const querystring=require('querystring');//查询字符串相关
const urlLib=require('服务器租借多少钱一年url');//处理url相关
var se服务器和电脑主机的差异rver=http.createServjson格局er(function(reqJSON,r服务器ipes){
//GET
var obj=urlLib.parse(req.url,true);
var url=obj.pathname;
const GET=obj.query;
//POST
var str='';
var POSThttpwatch='';
reqjson是什么意思.onjson('服务器地址在哪里看data',function(data){
str+=dahttp 500ta;
});
req.http://www.baidu.comon('end',funct服务器装备ion(){
PO服务器租借ST=querystring.parse(http 500str);
});
// console.log(url,GET,POST)httpclient
//文件央求
var file_name='./www'+url;
fs.readFile(file_name,function(err,data){
if (err) {
res.write("404");
}else{
res.write(dajson字符串ta);
}
res.end();
});
});
server.listen(8080);//要个端口而且监听该端口

以上便是nohttp:http://www.baidu.com//192.168.1.1登录dejs怎样获取GET和POST数据以及怎样读取所央求文件并照顾的相关内容