如何在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 相关文章推荐
用jQuery中的ajax分页实现代码
Sep 20 Javascript
Jquery 自定义动画概述及示例
Mar 29 Javascript
jquery实现拖拽调整Div大小
Jan 30 Javascript
jQuery ajax时间差导致的变量赋值问题分析
Jan 22 Javascript
javascript 用函数实现继承详解
May 28 Javascript
利用JS实现页面删除并重新排序功能
Dec 09 Javascript
jQuery实现圣诞节礼物动画案例解析
Dec 25 Javascript
JavaScript实现鼠标点击导航栏变色特效
Feb 08 Javascript
微信小程序动态显示项目倒计时效果
Jun 13 Javascript
详解新手使用vue-router传参时注意事项
Jun 06 Javascript
node.js中 redis 的安装和基本操作示例
Feb 10 Javascript
JavaScript异步操作中串行和并行
Nov 20 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和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
Snoopy类使用小例子
2008/04/15 PHP
PHP SPL标准库中的常用函数介绍
2015/05/11 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题分析
2007/08/12 Javascript
基于jsTree的无限级树JSON数据的转换代码
2010/07/27 Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
2011/01/17 Javascript
Jquery日期选择datepicker插件用法实例分析
2015/06/08 Javascript
JS获取和修改元素样式的实例代码
2016/08/06 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
vue将后台数据时间戳转换成日期格式
2019/07/31 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
[00:43]FTP典藏礼包 DOTA2三大英雄霸气新套装
2014/03/21 DOTA
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
Python程序设计入门(5)类的使用简介
2014/06/16 Python
python执行shell获取硬件参数写入mysql的方法
2014/12/29 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
2019/10/18 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
CSS3的first-child选择器实战攻略
2016/04/28 HTML / CSS
HTML5实现表单自动验证功能实例代码
2017/01/11 HTML / CSS
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
文件中有一组整数,要求排序后输出到另一个文件中
2012/01/04 面试题
为什么说Ruby是一种真正的面向对象程序设计语言
2012/10/30 面试题
蔬菜基地的创业计划书
2014/01/06 职场文书
户籍证明的格式
2014/01/13 职场文书
工厂会计员职责
2014/02/06 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
看雷锋电影观后感
2015/06/10 职场文书
《检阅》教学反思
2016/02/22 职场文书
vue 实现上传组件
2021/05/31 Vue.js