原生JS解析参数:

  1. const http = require('http');
  2. http.createServer(function(req,res){
  3. var GET = {}; //接收数据容器
  4.  
  5. if(req.url.indexOf('?')!= -1){ //因为req.url中可能没有数据,或者是favicon.ico,为避免报错,我们要进行判断
  6. //req获取前台请求数据
  7. // console.log(req.url); //?userName=dsdf&pass=sdfsf
  8. var arr = req.url.split("?");
  9. var url = arr[0];
  10.  
  11. // arr[1] => 数据:userName=dsdf&pass=sdfsf
  12. var arr2 = arr[1].split('&'); // => ['userName=dsdf',pass=sdfsf]
  13. for(var i=0;i<arr2.length;i++){
  14. var arr3 = arr2[i].split('=');
  15. //arr3[0] => 名字 'usrName';
  16. //arr[1] => 数据 '密码'
  17. GET[arr3[0]] = arr3[1];
  18. }
  19.  
  20. }else{
  21. var url = req.url;
  22. };
  23. console.log(url,GET); //{userName:'name','pass':'23424'}
  24.  
  25. //!!!因为要解析GET参数比较麻烦,所以node有专门的模块:querystring
  26. // querystring 模块提供了一些实用函数,用于解析与格式化 URL 查询字符串。
  27. res.write('aaa');
  28. res.end();
  29. }).listen(8088);

querystring解析参数

  1. //因为要解析GET参数比较麻烦,所以node有专门的模块:querystring
  2. // querystring 模块提供了一些实用函数,用于解析与格式化 URL 查询字符串。
  3.  
  4. const queryString=require('querystring');
  5.  
  6. var json= queryString.parse('userName=blue&pass=123445&age=18');
  7. console.log(json); //{ userName: 'blue', pass: '123445', age: '18' }

url解析参数:

  1. const urlLib=require('url');
  2. var obj = urlLib.parse('http://www.zihe8888.com/index?userName=blue&pass=123445&age=18');
  3. console.log(obj);
  4.  
  5. // Url {
  6. // protocol: 'http:',
  7. // slashes: true,
  8. // auth: null,
  9. // host: 'www.zihe8888.com',
  10. // port: null,
  11. // hostname: 'www.zihe8888.com',
  12. // hash: null,
  13. // search: '?userName=blue&pass=123445&age=18',
  14. // query: 'userName=blue&pass=123445&age=18',
  15. // pathname: '/index',
  16. // path: '/index?userName=blue&pass=123445&age=18',
  17. // href: 'http://www.zihe8888.com/index?userName=blue&pass=123445&age=18' }
  18.  
  19. var obj = urlLib.parse('http://www.zihe8888.com/index?userName=blue&pass=123445&age=18',true); //带上参数true,就会自动解析query为对象了
  20. console.log(obj);
  21. // Url {
  22. // protocol: 'http:',
  23. // slashes: true,
  24. // auth: null,
  25. // host: 'www.zihe8888.com',
  26. // port: null,
  27. // hostname: 'www.zihe8888.com',
  28. // hash: null,
  29. // search: '?userName=blue&pass=123445&age=18',
  30. // query: { userName: 'blue', pass: '123445', age: '18' }, //数据部分
  31. // pathname: '/index', //地址部分
  32. // path: '/index?userName=blue&pass=123445&age=18',
  33. // href: 'http://www.zihe8888.com/index?userName=blue&pass=123445&age=18' }

案例:最简单的解析方法

  1. // 最简单的解析方法!!!!!
  2.  
  3. const http = require('http');
  4. const urlLib=require('url');
  5.  
  6. http.createServer(function(req,res){
  7. var obj = urlLib.parse(req.url,true);
  8. var url = obj.pathname; //文件名称
  9. var GET = obj.query;
  10. console.log(GET);
  11. console.log(url);
  12.  
  13. res.write('aaa');
  14. res.end();
  15.  
  16. }).listen(8088);

nodeJs学习-03 GET数据请求,js拆解/querystring/url的更多相关文章

  1. nodeJs学习-04 POST数据请求,分段发送,分段接收

    const http = require("http"); const querystring= require('querystring'); http.createServer ...

  2. nodejs学习笔记<四>处理请求参数

    在web开发中处理请求参数是个非常常见的工作:nodejs提供了了querystring用来处理请求参数. querystring常用方法有:parse,stringify. (1)parse: 解析 ...

  3. python学习-- Django传递数据给JS

    var List = {{ List|safe }};//safe 必须存在

  4. Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识

    目录 前言 新建express项目并自定义路由规则 如何提取页面中的公共部分? 如何提交表单并接收参数? GET 方式 POST 方式 如何字符串加密? 如何使用session? 如何使用cookie ...

  5. Nodejs学习笔记(六)—Node.js + Express 构建网站预备知识

    前言 前面经过五篇Node.js的学习,基本可以开始动手构建一个网站应用了,先用这一篇了解一些构建网站的知识! 主要是些基础的东西... 如何去创建路由规则.如何去提交表单并接收表单项的值.如何去给密 ...

  6. Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...

  7. mpvue学习笔记-之微信小程序数据请求封装

    简介 美团出品的mpvue已经开源出来很久了,一直说要进行一次实践,这不最近一次个人小程序开发就用上了它. 看了微信官方的数据请求模块--request,对比了下get和post请求的代码,发现如果在 ...

  8. [转]Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装 ...

  9. day 74 vue 2 axios数据请求 以及组件的学习

    前情提要:   vue 学习二: 一: 通过axios实现数据请求 1:json数据语法 json数据对象类似于JavaScript中的对象,但是它的键对应的值里面是没有函数方法的,值可以是普通变量, ...

随机推荐

  1. call(this)自记

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. LAMP环境搭建和配置(2)

    配置httpd 默认虚拟主机 编辑hpptd的主配置文件 搜索httpd-vhost,把行首的#号删除 保存主配置文件,然后编辑虚拟主机配置文件 重新编辑配置段(第一段为默认虚拟主机) ServerA ...

  3. OpenLayers使用symbolizers样式特征

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head ...

  4. Java问题解读系列之String相关---String类为什么是final的?

    今天看到一篇名为<Java开发岗位面试题归类汇总>的博客,戳进去看了一下题目,觉得有必要夯实一下基本功了,所以打算边学边以博客的形式归纳总结,每天一道题, 并将该计划称为java问题解读系 ...

  5. jenkins自动部署

    最近在使用公司的jenkins进行自动部署项目,由于之前没有用过,一直半生不熟,因此特意写个随机记录. 1.登录jenkins服务 jenkins安装好后,我们通过浏览器访问它的主页(如下),输入用户 ...

  6. linux应用系统日志

    在一个典型的LAMP(Linux+Apache+Mysql+Perl)应用环境里: Apache & Nginx; 查找访问和错误日志, 直接找 5xx 错误, 再看看是否有 limit_zo ...

  7. ubuntu和win10设置双显示器

    ubuntu:最右上角那个图标,点开找到系统设置,系统设置中找到“显示”中,在其中可以调节双屏显示或者只显示一个屏,图等会补... win10:现在是ubuntu系统所以操作忘记了写不出来,等下换系统 ...

  8. js中的如何定位固定层的位置

    需要获取一些HTML的对象的坐标来更灵活的设置目标层的坐标,这里可以通过用到document.body.scrollTop等属性,但是这些属性在xhtml的标准网页中或更简单的说就是带<!DOC ...

  9. 那些年,我们见过的Java服务端乱象

    导读 查尔斯·狄更斯在<双城记>中写道:“这是一个最好的时代,也是一个最坏的时代.”移动互联网的快速发展,出现了许多新机遇,很多创业者伺机而动:随着行业竞争加剧,互联网红利逐渐消失,很多创 ...

  10. 【笔记】LR录制方式和常用函数

    本文为本人复习LR时,笔记整理.以备后续查阅. 注意:录制脚本时,选择不同的协议下录制时设置选项也是不相同的,我们这里介绍的是基于协议web(http/html)录制选项设置. 对于web(http/ ...