如何在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在IE或Firefox下获取鼠标位置的代码
Dec 18 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
Jul 07 Javascript
jquery中交替点击事件的实现代码
Feb 14 Javascript
js实现的简洁网页滑动tab菜单效果代码
Aug 24 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
Dec 02 Javascript
深入理解关于javascript中apply()和call()方法的区别
Apr 12 Javascript
基于js中this和event 的区别(详解)
Oct 24 Javascript
React 无状态组件(Stateless Component) 与高阶组件
Aug 14 Javascript
JS中自定义事件的使用与触发操作实例分析
Nov 01 Javascript
如何在微信小程序中存setStorage
Dec 13 Javascript
原生JavaScript之es6中Class的用法分析
Feb 23 Javascript
Vue作用域插槽实现方法及作用详解
Jul 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
PHP常用开发函数解析之数组篇[未完结]
2012/07/30 PHP
PHP 图片水印类代码
2012/08/27 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
php生成txt文件标题及内容的方法
2014/01/16 PHP
php实现数据库的增删改查
2017/02/26 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
javascript中typeof操作符和constucor属性检测
2015/02/26 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
小程序绑定用户方案优化小结
2019/05/15 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
[03:26]《DAC最前线》之EG经理自述DOTA2经历
2015/02/02 DOTA
python中的reduce内建函数使用方法指南
2014/08/31 Python
Python中的作用域规则详解
2015/01/30 Python
python随机生成指定长度密码的方法
2015/04/04 Python
tensorflow常用函数API介绍
2020/04/19 Python
Python连接mysql方法及常用参数
2020/09/01 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
CSS3的first-child选择器实战攻略
2016/04/28 HTML / CSS
CSS3贝塞尔曲线示例:创建链接悬停动画效果
2020/11/19 HTML / CSS
日本最大的旅游网站:Rakuten Travel(乐天旅游)
2018/08/02 全球购物
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
Java平台和其他软件平台有什么不同
2015/06/05 面试题
请解释virtual关键字的含义
2015/06/17 面试题
Python里面search()和match()的区别
2016/09/21 面试题
中年人生感言
2014/02/04 职场文书
助人为乐模范事迹材料
2014/06/02 职场文书
房地产经营管理专业自荐信
2014/09/02 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
学雷锋广播稿大全
2015/08/19 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书
俄罗斯十大城市人口排名,第三首都仅排第六,第二是北方首都
2022/03/20 杂记