如何在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 相关文章推荐
html中使用javascript调用本地程序(exe、doc等)实现代码
Apr 26 Javascript
JS实现支持多选的遍历下拉列表代码
Aug 20 Javascript
javascript html5实现表单验证
Mar 01 Javascript
利用node.js搭建简单web服务器的方法教程
Feb 20 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
Aug 23 jQuery
利用nvm管理多个版本的node.js与npm详解
Nov 02 Javascript
基于layui数据表格以及传数据的方式
Aug 19 Javascript
javascript中一些奇葩的日期换算方法总结
Nov 14 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
Mar 21 Javascript
使用vue制作滑动标签
Sep 21 Javascript
Javascript幻灯片播放功能实现过程解析
May 07 Javascript
简单了解three.js 着色器材质
Aug 03 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/04/09 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
php的ddos攻击解决方法
2015/01/08 PHP
非常重要的php正则表达式详解
2016/01/04 PHP
PHP微信API接口类
2016/08/22 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
Array对象方法参考
2006/10/03 Javascript
js中widow.open()方法使用详解
2013/07/30 Javascript
基于jquery实现的可编辑下拉框实现代码
2014/08/02 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
jQuery防止重复绑定事件的解决方法
2016/05/14 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
JS使用setInterval实现的简单计时器功能示例
2018/04/19 Javascript
js实现图片3D轮播效果
2019/09/21 Javascript
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
python函数中return后的语句一定不会执行吗?
2017/07/06 Python
查看Django和flask版本的方法
2018/05/14 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
pygame游戏之旅 添加碰撞效果的方法
2018/11/20 Python
CentOS7安装Python3的教程详解
2019/04/10 Python
Anaconda和ipython环境适配的实现
2020/04/22 Python
keras得到每层的系数方式
2020/06/15 Python
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
匡威西班牙官网:Converse西班牙
2019/10/01 全球购物
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
法律专业自荐信
2014/06/03 职场文书
会计岗位工作总结
2015/08/12 职场文书
《半截蜡烛》教学反思
2016/02/19 职场文书
Java Dubbo框架知识点梳理
2021/06/26 Java/Android