如何在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 多级checkbox选择效果
Aug 20 Javascript
Javascript计算时间差的函数分享
Jul 04 Javascript
JS和JQ的event对象区别分析
Nov 24 Javascript
JavaScript中的比较操作符&gt;、=、
Dec 31 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
Mar 03 Javascript
JavaScript Sort 的一个错误用法示例
Mar 20 Javascript
举例简介AngularJS的内部语言环境
Jun 17 Javascript
VUE多层路由嵌套实现代码
May 15 Javascript
vue-cli脚手架引入图片的几种方法总结
Mar 13 Javascript
vue裁切预览组件功能的实现步骤
May 04 Javascript
基于axios 解决跨域cookie丢失的问题
Sep 26 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
Sep 28 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侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
2009/10/15 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
2014/11/03 PHP
PHP实现的ID混淆算法类与用法示例
2018/08/10 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
js实现的点击div区域外隐藏div区域
2014/06/30 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
javascript随机抽取0-100之间不重复的10个数
2016/02/25 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
微信小程序 支付功能实现PHP实例详解
2017/05/12 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
2018/04/18 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
2018/09/11 Javascript
jQuery实现容器间的元素拖拽功能
2020/12/01 jQuery
javascript实现放大镜功能
2020/12/09 Javascript
three.js如何实现3D动态文字效果
2021/03/03 Javascript
Python数据处理numpy.median的实例讲解
2018/04/02 Python
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
Python 下载及安装详细步骤
2019/11/04 Python
Python ATM功能实现代码实例
2020/03/19 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
2020/03/23 Python
python模拟点击玩游戏的实例讲解
2020/11/26 Python
10分钟理解CSS3 FlexBox弹性布局
2018/12/20 HTML / CSS
制药工程专业个人求职自荐信
2014/01/25 职场文书
就业表自我评价分享
2014/02/06 职场文书
学雷锋志愿服务月活动总结
2014/03/09 职场文书
房务中心文员岗位职责
2014/04/16 职场文书
班组建设经验交流材料
2014/05/12 职场文书
法人单位适用的授权委托书
2014/09/19 职场文书
五好家庭事迹材料
2014/12/20 职场文书
行为规范主题班会
2015/08/13 职场文书
导游词之崇武古城
2019/10/07 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python
分享提高 Python 代码的可读性的技巧
2022/03/03 Python