zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    vs2013配置opencv2.4.13(txt中复制粘贴即可,一次配置永久使用)
    描述性统计量
    Ubuntu创建、删除文件与目录
    Linux下服务器端开发流程及相关工具介绍(C++)
    TCP 协议如何保证可靠传输
    真实记录疑似Linux病毒导致服务器 带宽跑满的解决过程
    Windbg程序调试--转载
    原来问题在这里-我的memory leak诊断历程
    用WinDbg分析Debug Diagnostic Tool生成的Userdump文件
    一个内存增长问题的分析和处理(三)
  • 原文地址:https://www.cnblogs.com/carpenterzoe/p/10262730.html
Copyright © 2011-2022 走看看