如何在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 树形结构的选择器
Feb 15 Javascript
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
Jul 17 Javascript
JQUBAR1.1 jQuery 柱状图插件发布
Nov 28 Javascript
jQuery.fn和jQuery.prototype区别介绍
Oct 05 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
May 11 Javascript
Vue中如何实现轮播图的示例代码
Jul 27 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
Sep 27 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
Oct 20 Javascript
element UI upload组件上传附件格式限制方法
Sep 04 Javascript
解决VUE中document.body.scrollTop为0的问题
Sep 15 Javascript
node使用Mongoose类库实现简单的增删改查
Nov 08 Javascript
使用vuex解决刷新页面state数据消失的问题记录
May 08 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
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
javascript函数式编程程序员的工具集
2015/10/11 Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
2017/01/18 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
用POSTMAN发送JSON格式的POST请求示例
2018/09/04 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
2019/08/20 Javascript
vue遍历生成的输入框 绑定及修改值示例
2019/10/30 Javascript
javascript实现图片轮换动作方法
2020/08/07 Javascript
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
Python smallseg分词用法实例分析
2015/05/28 Python
python实现读取并显示图片的两种方法
2017/01/13 Python
使用Python读取二进制文件的实例讲解
2018/07/09 Python
python实现弹跳小球
2019/05/13 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
python+selenium爬取微博热搜存入Mysql的实现方法
2021/01/27 Python
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
英国顶级足球鞋的领先零售商:Lovell Soccer
2019/08/27 全球购物
eBay意大利购物网站:eBay.it
2019/09/04 全球购物
.NET常见笔试题集
2012/12/01 面试题
创建文明学校实施方案
2014/03/11 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
800字作文之大雪
2019/12/04 职场文书
MySQL慢查询的坑
2021/04/28 MySQL