如何在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基础的动画教程,直观易懂
Jan 10 Javascript
潜说js对象和数组
May 25 Javascript
jQuery中val()方法用法实例
Dec 25 Javascript
AngularJS基础 ng-submit 指令简单示例
Aug 03 Javascript
AngularJS自定义控件实例详解
Dec 13 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
Dec 14 Javascript
详解angular ui-grid之过滤器设置
Jun 07 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
Aug 25 Javascript
Vue2几种常见开局方式详解
Sep 09 Javascript
js消除图片小游戏代码
Dec 11 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
Dec 24 Javascript
如何利用JS将手机号中间四位变成*号
Sep 29 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
一个取得文件扩展名的函数
2006/10/09 PHP
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
关于PHP语言构造器介绍
2013/07/08 PHP
php apache开启跨域模式过程详解
2019/07/08 PHP
Aster vs KG BO3 第二场2.19
2021/03/10 DOTA
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
2012/12/21 Javascript
JS去除数组重复值的五种不同方法
2013/09/06 Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
2014/12/29 Javascript
深入探讨javascript中的数据类型
2015/03/04 Javascript
Angularjs制作简单的路由功能demo
2015/04/14 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
使用javascript插入样式
2016/03/14 Javascript
js原生实现移动端手指滑动轮播图效果的示例
2018/01/02 Javascript
vue 使用Jade模板写html,stylus写css的方法
2018/02/23 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
转换layUI的数据表格中的日期格式方法
2019/09/19 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
Python生成pdf文件的方法
2014/08/04 Python
python3+PyQt5实现柱状图
2018/04/24 Python
python实现随机漫步算法
2018/08/27 Python
Python的UTC时间转换讲解
2019/02/26 Python
Python-接口开发入门解析
2019/08/01 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
基于canvas的骨骼动画的示例代码
2018/06/12 HTML / CSS
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
捐资助学倡议书
2014/04/15 职场文书
道歉的话语大全
2015/05/12 职场文书
道歉信范文
2015/05/12 职场文书
节水宣传标语口号
2015/12/26 职场文书
教师法制教育培训学习心得体会
2016/01/14 职场文书
PL350与SW11的比较
2021/04/22 无线电
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
2021/04/24 Python