一,数据请求
前台->form/ajax/jsonp
后台->一样
二,get请求(解析地址、数据)
(1)最基础的方法
const http = require('http');
http.createServer(function(req,res){
var get ={};
if(req.url.indexOf('?')!=-1){
var arr = req.url.split('?');
var url = arr[0];
//arr[0]=>'/aaa'
//arr[1]=>'userName=wangni&userPassword=iop'
var arr2 = arr[1].split('&');
//arr2[0]=>'userName=wangni'
//arr2[1]=>'userPassword=iop'
for (var i = 0; i < arr2.length; i++) {
var arr3 = arr2[i].split('=');
get[arr3[0]] = arr3[1];
}
}else{
var url = req.url;
}
console.log(url,get);
res.write('aaa');
res.end();
}).listen(8090);
(2)queryString(解析数据)
const http = require('http');
const querystring = require('querystring');
http.createServer(function(req,res){
var get ={};
if(req.url.indexOf('?')!=-1){
var arr = req.url.split('?');
var url = arr[0];
//arr[0]=>'/aaa'
//arr[1]=>'userName=wangni&userPassword=iop'
get = querystring.parse(arr[1]);
}else{
var url = req.url;
}
console.log(url,get);
res.write('aaa');
res.end();
}).listen(8090);
(3)url(解析地址、数据)
url.parse('请求地址',true);true将数据中的query解析为json格式
const http = require('http');
const myURL = require('url');
var url,get = {};
http.createServer(function(req,res){
var obj = myURL.parse(req.url,true);
url = obj.pathname;
get = obj.query
console.log(url,get);
res.write('aaa');
res.end();
}).listen(8090);
三,POST请求
post数据接收:post数据比get数据大很多,所以分段发送
(这里接收数据用querystring,不用url)
const http = require('http');
http.createServer(function(req,res){
var i = 0,str = '';
//data=>有一段数据到达(很多次)
req.on('data',function(data){
console.log(`第${i++}次发送数据`)//es6里面的写法
str+=data;
});
//end=>数据发送完毕(一次)
req.on('end',function(){
//console.log(str)
});
}).listen(8090);
四,总结
***post请求使用querystring来解析;get请求使用url来解析;文件读取:可读文件都在www的文件夹,所以路径需要拼接下
const http = require('http');
const fs = require('fs');
const querystring = require('querystring');
const urlLi = require('url');
http.createServer(function(req,res){
//get
var obj = urlLi.parse(req.url,true);
var url = obj.pathname;
const get = obj.query;
//post
var str = '';
req.on('data',function(data){
str += data;
});
req.on('end',function(){
const post = querystring.parse(str);
console.log(url,get,post);
});
//文件读取
var fileName = './www'+url;
fs.readFile(fileName,function(err,data){
if(err){
res.write('404');
}else{
res.write(data)
}
res.end();
});
}).listen(8090);