如何在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 程序库的比较(一)之DOM功能
Apr 07 Javascript
javascript验证身份证完全方法具体实现
Nov 18 Javascript
浅析jQuery1.8的几个小变化
Dec 10 Javascript
jquery获取radio值(单选组radio)
Oct 16 Javascript
JS脚本实现动态给标签控件添加事件的方法
Jun 02 Javascript
JavaScript基础知识点归纳(推荐)
Jul 09 Javascript
Node.js的特点详解
Feb 03 Javascript
jQuery响应滚动条事件功能示例
Oct 14 jQuery
Node.js中DNS模块学习总结
Feb 28 Javascript
vue-cli 首屏加载优化问题
Nov 06 Javascript
vue日历/日程提醒/html5本地缓存功能
Sep 02 Javascript
Jquery ajax书写方法代码实例解析
Jun 12 jQuery
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把数据表导出为Excel表的最简单、最快的方法(不用插件)
2014/05/10 PHP
php获取根域名方法汇总
2014/10/28 PHP
php实现上传图片保存到数据库的方法
2015/02/11 PHP
详解php魔术方法(Magic methods)的使用方法
2016/02/14 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
浅析JS中对函数function的理解(基础篇)
2016/10/14 Javascript
Javascript 严格模式use strict详解
2017/09/16 Javascript
Three.js基础学习之场景对象
2017/09/27 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
构建一个JavaScript插件系统
2020/10/20 Javascript
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
简单的Python2.7编程初学经验总结
2015/04/01 Python
python实现数独算法实例
2015/06/09 Python
一步步解析Python斗牛游戏的概率
2016/02/12 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
使用python进行广告点击率的预测的实现
2019/07/04 Python
tensorflow多维张量计算实例
2020/02/11 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
利用SVG和CSS3来实现一个炫酷的边框动画
2015/07/22 HTML / CSS
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
英国二手iPhone、音乐、电影和游戏商店:musicMagpie
2018/10/26 全球购物
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
Android面试题附答案
2014/12/08 面试题
美容院店长岗位职责
2014/04/08 职场文书
目标责任书范文
2014/04/14 职场文书
2014年教师业务学习材料
2014/05/12 职场文书
会计试用期自我评价
2014/09/19 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫