Node.js笔记 请求方式 GET

 

三种方法解析url

1. 传统的字符串split切割方法

2. querystring     只能解析数据部分,不能解析前面 index.html之类的地址部分。

3. url   可以解析地址和数据。 注意给个参数true。

 

split字符串分割方法解析url

const http=require('http');

http.createServer(function (req, res){
  var GET={};  // json

  if(req.url.indexOf('?')!=-1){
    
  // indexOf('?')    
  // 查找字符串 ‘?’ 是否在url里存在。 返回值是数字。
  // 不存在=> 返回 -1 
  // 存在 => 返回'?' 在 url里第一次出现的位置。 比如在第三位,返回2

    var arr=req.url.split('?');
    //arr[0]=>地址  '/aaa'
    var url=arr[0];
    //arr[1]=>数据  'user=blue&pass=123456'

    var arr2=arr[1].split('&');
    //arr2=>['user=blue', 'pass=123456']

    for(var i=0;i<arr2.length;i++){
      var arr3=arr2[i].split('=');
      //arr3[0]=>名字   'user'
      //arr3[1]=>数据   'blue'

      GET[arr3[0]]=arr3[1];   // 给Json赋值。这里是把 . 点号换成了 [ ] 
      // 等同于如下示例:
      // var jsonStr = {};
      // jsonStr.id = id;
      // jsonStr.name = name;
    }
  }else{
    var url=req.url;
  }


  console.log(url, GET);

  //req获取前台请求数据
  res.write('aaa');
  res.end();
}).listen(8080);

 

querystring方法 解析url

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];
    
    GET=querystring.parse(arr[1]);
  }else{
    var url=req.url;
  }


  console.log(url, GET);

  //req获取前台请求数据
  res.write('aaa');
  res.end();
}).listen(8080);

 

url 方法 解析url

const http=require('http');
const urlLib=require('url');

http.createServer(function (req, res){
  var obj=urlLib.parse(req.url, true);  //注意要给个参数 true,这样会自动解析成需要的格式

  var url=obj.pathname;
  var GET=obj.query;

  console.log(url, GET);

  //req获取前台请求数据
  res.write('aaa');
  res.end();
}).listen(8081);

 

posted @ 2019-01-13 15:42  CarpenterZoe  阅读(154)  评论(0编辑  收藏  举报