如何在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 相关文章推荐
Eclipse下jQuery文件报错出现错误提示红叉
Jan 13 Javascript
jquery 选取方法都有哪些
May 18 Javascript
javascript初学者常用技巧
Sep 02 Javascript
基于jquery实现在线选座订座之影院篇
Aug 24 Javascript
JavaScript 七大技巧(一)
Dec 13 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
Jun 12 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
Jan 21 Javascript
vuex实现的简单购物车功能示例
Feb 13 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
Jun 04 Javascript
js实现表单项的全选、反选及删除操作示例
Jun 05 Javascript
通过实例了解JS执行上下文运行原理
Jun 17 Javascript
Vue多选列表组件深入详解
Mar 02 Vue.js
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
天津市收音机工业发展史
2021/03/04 无线电
PHP如何使用Memcached
2016/04/05 PHP
Smarty分页实现方法完整实例
2016/05/11 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
js 页面输出值
2008/11/30 Javascript
编写可维护面向对象的JavaScript代码[翻译]
2011/02/12 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
JavaScript数组的定义及数字操作技巧
2016/06/06 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
JS实现重新加载当前页面
2016/11/29 Javascript
Vue自定义指令介绍(2)
2016/12/08 Javascript
js实现获取鼠标当前的位置
2016/12/14 Javascript
Ext JS 实现建议词模糊动态搜索功能
2017/05/13 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
详解vue.js之绑定class和style的示例代码
2017/08/24 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
Python、Javascript中的闭包比较
2015/02/04 Python
深入解析Python中的集合类型操作符
2015/08/19 Python
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
Python标准模块--ContextManager上下文管理器的具体用法
2017/11/27 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
Python二维码生成识别实例详解
2019/07/16 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
Python通过文本和图片生成词云图
2020/05/21 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
2021/01/09 Python
公司2014年度工作总结
2014/12/10 职场文书
婚礼嘉宾致辞
2015/07/28 职场文书
高三语文教学反思
2016/02/16 职场文书
Canvas跟随鼠标炫彩小球的实现
2021/04/11 Javascript
Golang中interface{}转为数组的操作
2021/04/30 Golang
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server
Python re.sub 反向引用的实现
2021/07/07 Python
Go语言特点及基本数据类型使用详解
2022/03/21 Golang