• 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);
  • 相关阅读:
    Silverlight中使用MVVM(2)-(提高)
    Silverlight中使用MVVM(1)--基础
    数据库设计 Step by Step (2)——数据库生命周期
    数据库设计 Step by Step (1)——扬帆启航
    心火肝火胃火肺火的症状区别及治疗方法
    ESP8266 wifi 模块配置,Wechat+APP控制实现
    PCB名詞解釋:通孔、盲孔、埋孔(转载)
    123
    电子称DIY(贴应变片+写代码)
    STM32常见问题
  • 原文地址:https://www.cnblogs.com/carpenterzoe/p/10262730.html
Copyright © 2020-2023  润新知