如何在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实例教程(19) 使用HoTMetal(1)
Dec 23 Javascript
一段批量给页面上的控件赋值js
Jun 19 Javascript
JavaScript替换当前页面的方法
Apr 03 Javascript
bootstrap下拉列表与输入框组结合的样式调整
Oct 08 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
Dec 06 Javascript
详解angular ui-grid之过滤器设置
Jun 07 Javascript
全新打包工具parcel零配置vue开发脚手架
Jan 11 Javascript
Vue实现内部组件轮播切换效果的示例代码
Apr 07 Javascript
Vuejs开发环境搭建及热更新【推荐】
Sep 07 Javascript
详解vue2.0模拟后台json数据
May 16 Javascript
JavaScript Window窗口对象属性和使用方法
Jan 19 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
Jun 10 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(5) 类和对象
2010/02/16 PHP
phpize的深入理解
2013/06/03 PHP
DEDECMS首页调用图片集里的多张图片
2015/06/05 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
2017/08/07 PHP
捕获关闭窗口的脚本
2009/01/10 Javascript
jquery tools系列 expose 学习
2009/09/06 Javascript
js 格式化时间日期函数小结
2010/03/20 Javascript
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
javascript中DOM复选框选择用法实例
2015/05/14 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
javascript加载xml 并解析各节点的值(实现方法)
2016/10/12 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
微信小程序搜索组件wxSearch实例详解
2017/06/08 Javascript
详解vue+vueRouter+webpack的简单实例
2017/06/17 Javascript
async/await地狱该如何避免详解
2018/05/10 Javascript
实例讲解vue源码架构
2019/01/24 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
解决vue.js提交数组时出现数组下标的问题
2019/11/05 Javascript
vue 组件销毁并重置的实现
2020/01/13 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
基于原生js实现九宫格算法代码实例
2020/07/03 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
Python实现冒泡排序的简单应用示例
2017/12/11 Python
Python引用计数操作示例
2018/08/23 Python
python使用flask与js进行前后台交互的例子
2019/07/19 Python
利用Python实现手机短信监控通知的方法
2019/07/22 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
python定时截屏实现
2020/11/02 Python
python操作toml文件的示例代码
2020/11/27 Python
python mongo 向数据中的数组类型新增数据操作
2020/12/05 Python
高中学生会竞选演讲稿
2014/08/25 职场文书
Python利用zhdate模块实现农历日期处理
2022/03/31 Python