如何在node环境实现“get数据解析”代码实例


Posted in Javascript onJuly 03, 2020

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];
    var arr2 = arr[1].split('&');
    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(8080);

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];
    get = querystring.parse(arr[1]);
  }else{
    var url = req.url;
  }
  console.log(url,get);
  res.write('aaa');
  res.end();
}).listen(8080);

3、引入url模块

const http = require('http');
const urlli = require('url');
http.createServer(function(req,res){
  var obj = urlli.parse(req.url,true); //true解析,如果没有true,默认不解析
  var url = obj.pathname;
  var get = obj.query;
  console.log(url,get);
  res.write('aaa');
  res.end();
}).listen(8080);

提交表单的HTML代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <form action="http://localhost:8080/aaa" method="get">
    用户:<input type="text" name="user" value=''><br>
    密码:<input type="password" name="pass" value=''><br>
    <input type="submit" value="提交">
  </form>
</body>
</html>

个人练习如下:

const http = require("http");
const queryString = require("querystring");
const urlNode = require('url');

http.createServer((req,res)=>{
  console.log(req.url);  // /aaa?user=123&pass=456
  var get = {};
  var url = '';
  if(req.url.indexOf('?') != -1){

    //方法一:切割字符串
    // var _arr = req.url.split('?'); //['aaa','user=123&pass=456']
    // url = _arr[0]; //'aaa'
    // var _arr2 = _arr[1].split('&'); //['user=123','pass=456']
    // _arr2.map((v,k,arr)=>{
    //   var key = v.split('=')[0];
    //   var value = v.split('=')[1];
    //   get[key] = value;
    // })

    //方法二:正则表达式
    // var query = req.url.substr(req.url.indexOf('?')+1);
    // var regAll = new RegExp("([^?&=]+)=([^?&=]*)", "gi");
    // var regSingle = new RegExp("([^?&=]+)=([^?&=]*)", "i");
    // var arrAll = query.match(regAll);   //["user=123", "pass=456"]
    // arrAll.map(function(v,k,arr){
    //   var resultArr = v.match(regSingle);
    //   get[resultArr[1]] = resultArr[2];
    // })
    //方法三:引入querystring模块
    // const arr = req.url.split('?');
    // url = arr[0];
    // get = queryString.parse(arr[1]);
    //方法四:
    // const obj = urlNode.parse(req.url,true);
    // url = obj.pathname;
    // get = obj.query;

  }else{
    url = req.url;
  }
  console.log(url,get);
  res.write('123456')
  res.end('12')
}).listen(8000)

以上都 是原生node实现:

下面的是express中 req.query 就可以方便的取到 { id 123456}

app.get('/article',(req,res)=>{
  console.log(req.query)
  
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 技巧大全(新手入门篇)
May 12 Javascript
js自定义事件及事件交互原理概述(一)
Feb 01 Javascript
解析Jquery取得iframe中元素的几种方法
Jul 04 Javascript
js的toLowerCase方法用法实例
Jan 27 Javascript
js实现非常简单的焦点图切换特效实例
May 07 Javascript
javascript弹出拖动窗口
Aug 11 Javascript
jquery实现的仿天猫侧导航tab切换效果
Aug 24 Javascript
整理Javascript流程控制语句学习笔记
Nov 29 Javascript
AngularJS利用Controller完成URL跳转
Aug 09 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
Jun 01 Javascript
JavaScript变量类型以及变量作用域详解
Aug 14 Javascript
JavaScript 下载svg图片为png格式
Jun 21 Javascript
JavaScrip如果基于url实现图片下载
Jul 03 #Javascript
基于VUE实现判断设备是PC还是移动端
Jul 03 #Javascript
JavaScript如何判断对象有某属性
Jul 03 #Javascript
详解element-ui动态限定的日期范围选择器代码片段
Jul 03 #Javascript
JS常见错误(Error)及处理方案详解
Jul 02 #Javascript
vue过滤器实现日期格式化的案例分析
Jul 02 #Javascript
Vue使用预渲染代替SSR的方法
Jul 02 #Javascript
You might like
php+ajax实时刷新简单实例
2015/02/25 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
PHP实现简易图形计算器
2020/08/28 PHP
javascript Array数组对象的扩展函数代码
2010/05/22 Javascript
计算世界完全对称日的js代码,粗糙版
2011/11/04 Javascript
js去空格技巧分别去字符串前后、左右空格
2013/10/21 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
2015/10/23 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
2015/11/27 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
2015/12/15 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
2016/07/01 Javascript
JavaScript中const、var和let区别浅析
2016/10/11 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
JavaScript编程设计模式之构造器模式实例分析
2017/10/25 Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
2017/11/15 Javascript
浅谈gulp创建完整的项目流程
2017/12/20 Javascript
使用classList来实现两个按钮样式的切换方法
2018/01/24 Javascript
JavaScript setInterval()与setTimeout()计时器
2019/12/27 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
Python MD5加密实例详解
2017/08/02 Python
Python Django 命名空间模式的实现
2019/08/09 Python
美国眼镜网:GlassesUSA
2017/09/07 全球购物
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
Shopee菲律宾:在线购买和出售
2019/11/25 全球购物
办公室前台的岗位职责
2013/12/20 职场文书
购房协议书
2014/04/11 职场文书
村级个人对照检查材料
2014/08/22 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
廉政承诺书范文
2015/04/28 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
python实现图片批量压缩
2021/04/24 Python
python异常中else的实例用法
2021/06/15 Python
python数字类型和占位符详情
2022/03/13 Python