一,数据请求
前台->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);