如何在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 相关文章推荐
有一段有意思的代码-javascript现实多行信息
Aug 26 Javascript
Tab页界面,用jQuery及Ajax技术实现
Sep 21 Javascript
js Dialog 实践分享
Oct 22 Javascript
鼠标滑过出现预览的大图提示效果
Feb 26 Javascript
Javascript 是你的高阶函数(高级应用)
Jun 15 Javascript
实现音乐播放器的代码(html5+css3+jquery)
Aug 04 Javascript
JS动态添加iframe的代码
Sep 14 Javascript
javascript实现tab响应式切换特效
Jan 29 Javascript
关于function类中定义变量this的简单说明
May 28 Javascript
关于TypeScript中import JSON的正确姿势详解
Jul 25 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
Sep 05 Javascript
vue prop属性传值与传引用示例
Nov 13 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邮件专题
2006/10/09 PHP
安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
Smarty3配置及入门语法
2017/02/22 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
2020/12/01 PHP
简单JS代码压缩器
2006/10/12 Javascript
Javascript 代码也可以变得优美的实现方法
2009/06/22 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
2014/12/22 Javascript
JS控制按钮10秒钟后可用的方法
2015/12/22 Javascript
vue实现添加标签demo示例代码
2017/01/21 Javascript
JS实现简单的浮动碰撞效果示例
2017/12/28 Javascript
angularJS自定义directive之带参方法传递详解
2018/10/09 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
2019/06/20 jQuery
js中值引用和地址引用实例分析
2019/06/21 Javascript
微信小程序实现图片翻转效果的实例代码
2019/09/20 Javascript
js和jquery判断数据类型的4种方法总结
2020/08/28 jQuery
vue组件中实现嵌套子组件案例
2020/08/31 Javascript
wx.CheckBox创建复选框控件并响应鼠标点击事件
2018/04/25 Python
Python Grid使用和布局详解
2018/06/30 Python
PyQt5 QTableView设置某一列不可编辑的方法
2019/06/25 Python
Python使用贪婪算法解决问题
2019/10/22 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
python爬虫筛选工作实例讲解
2020/11/23 Python
CSS3下的渐变文字效果实现示例
2018/03/02 HTML / CSS
WoolOvers澳洲官方网站:英国针织服装公司
2018/05/13 全球购物
2019年.net常见面试问题
2012/02/12 面试题
优秀员工年终发言演讲稿
2014/01/01 职场文书
护理工作感言
2014/01/16 职场文书
行政主管职责范本
2014/03/07 职场文书
2014年班干部工作总结
2014/11/25 职场文书
阿里云服务器部署mongodb的详细过程
2021/09/04 MongoDB
Python绘画好看的星空图
2022/03/17 Python
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers