如何在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 相关文章推荐
js取滚动条的尺寸的函数代码
Nov 30 Javascript
JS中的substring和substr函数的区别说明
May 07 Javascript
jquery 缓存问题的几个解决方法
Nov 11 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
Dec 19 Javascript
JS实现文件动态顺序载入的方法
Mar 07 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
Aug 05 Javascript
js实现弹窗居中的简单实例
Oct 09 Javascript
ajax实现动态下拉框示例
Jan 10 Javascript
Vue.js组件tab实现选项卡切换
Mar 23 Javascript
vue-cli 3.x 修改dist路径的方法
Sep 19 Javascript
node koa2 ssr项目搭建的方法步骤
Dec 11 Javascript
处理canvas绘制图片模糊问题
May 11 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简单实现全选删除的方法
2016/12/06 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
2017/05/30 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
jquery的相对父元素和相对文档定位示例代码
2013/08/02 Javascript
jquery+ajax实现跨域请求的方法
2015/01/20 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
AngularJS轻松实现双击排序的功能
2016/08/30 Javascript
Web开发使用Angular实现用户密码强度判别的方法
2017/09/27 Javascript
vuejs点击class变化的实例
2018/09/05 Javascript
浅析vue-router原理
2018/10/19 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
React性能优化系列之减少props改变的实现方法
2019/01/17 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
vue.js的状态管理vuex中store的使用详解
2019/11/08 Javascript
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
2019/11/14 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
JavaScript中reduce()的5个基本用法示例
2020/07/19 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
Python使用type关键字创建类步骤详解
2019/07/23 Python
python 爬取马蜂窝景点翻页文字评论的实现
2020/01/20 Python
Python3批量创建Crowd用户并分配组
2020/05/20 Python
潘多拉意大利官方网上商城:网上选购PANDORA珠宝
2018/10/07 全球购物
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
幼儿教师个人求职信范文
2013/09/21 职场文书
电厂厂长岗位职责
2014/01/02 职场文书
中秋晚会策划方案
2014/06/12 职场文书
党员学习中共十八大思想报告
2014/09/12 职场文书
2016年优秀团支部事迹材料
2016/02/26 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python
CSS 鼠标选中文字后改变背景色的实现代码
2023/05/21 HTML / CSS