原生JS解析参数:

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

querystring解析参数

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

url解析参数:

const urlLib=require('url');
var obj = urlLib.parse('http://www.zihe8888.com/index?userName=blue&pass=123445&age=18');
console.log(obj); // Url {
// protocol: 'http:',
// slashes: true,
// auth: null,
// host: 'www.zihe8888.com',
// port: null,
// hostname: 'www.zihe8888.com',
// hash: null,
// search: '?userName=blue&pass=123445&age=18',
// query: 'userName=blue&pass=123445&age=18',
// pathname: '/index',
// path: '/index?userName=blue&pass=123445&age=18',
// href: 'http://www.zihe8888.com/index?userName=blue&pass=123445&age=18' } var obj = urlLib.parse('http://www.zihe8888.com/index?userName=blue&pass=123445&age=18',true); //带上参数true,就会自动解析query为对象了
console.log(obj);
// Url {
// protocol: 'http:',
// slashes: true,
// auth: null,
// host: 'www.zihe8888.com',
// port: null,
// hostname: 'www.zihe8888.com',
// hash: null,
// search: '?userName=blue&pass=123445&age=18',
// query: { userName: 'blue', pass: '123445', age: '18' }, //数据部分
// pathname: '/index', //地址部分
// path: '/index?userName=blue&pass=123445&age=18',
// href: 'http://www.zihe8888.com/index?userName=blue&pass=123445&age=18' }

案例:最简单的解析方法

// 最简单的解析方法!!!!!

const http = require('http');
const urlLib=require('url'); http.createServer(function(req,res){
var obj = urlLib.parse(req.url,true);
var url = obj.pathname; //文件名称
var GET = obj.query;
console.log(GET);
console.log(url); res.write('aaa');
res.end(); }).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. Leetcode405Convert a Number to Hexadecimal数字转换为十六进制数

    给定一个整数,编写一个算法将这个数转换为十六进制数.对于负整数,我们通常使用 补码运算 方法. 注意: 十六进制中所有字母(a-f)都必须是小写. 十六进制字符串中不能包含多余的前导零.如果要转化的数 ...

  2. TZ_16ES6学习总结

    1.块级作用域的引入 在ES6之前,js只有全局作用域和函数作用域,ES6中let关键字为其引入了块级作用域. { var a = 5; let b = 6; } console.log(a); // ...

  3. html5绘图工具选择

    1. Chart.js 基于html5, 完全开源免费 功能过于简单,只有6种图,能满足小系统需求,使用简便,效果比较炫. http://www.bootcss.com/p/chart.js/ 2. ...

  4. HTML5中的数据集dataset和自定义属性data-*

    在html5中可为所有元素添加一种自定义的属性,这种属性的前缀以data-开头,比如:data-name,目的是为元素提供与页面渲染无关,但与dom元素强相关的属性.添加完自定义属性后我们可以通过元素 ...

  5. 组件化开发之vue

    今天写了写vue的组件化开发demo,有些小的心得.分享一下. 组件化意味着代码可以复用,调用组件就可以了.然后可以通过组件调用组件的相关能力. 例如以前我做组件化开发的一个小项目 原生js组件的实现 ...

  6. 在Spring应用中创建全局获取ApplicationContext对象

    在Spring应用中创建全局获取ApplicationContext对象 1.需要创建一个类,实现接口ApplicationContextAware的setApplicationContext方法. ...

  7. NOIP模拟 6.26

    T1 子矩阵 题目描述 小A有一个N×M的矩阵,矩阵中1~N*M这(N*M)个整数均出现过一次.现在小A在这个矩阵内选择一个子矩阵,其权值等于这个子矩阵中的所有数的最小值.小A想知道,如果他选择的子矩 ...

  8. CSS(中)篇

    1.1行高 行高属于文字的属性 行高=文字大小+上间距+下间距(默认行高=18px) 行高的作用: 设置文字垂直方向中有距离 文字垂直居中(行高=容器的高度) 影响行高的因素: 文字大小可以改变行高 ...

  9. HDU 3555 (递推&&记忆化)

    #include<stdio.h> #include<string.h> #define max 25 typedef __int64 LL; LL dp[max][]; // ...

  10. 灵动微本土MCU厂商具有吸引力的增长点

    作为各种电子产品的控制和处理核心,微控制单元(MCU)器件是一种集成微处理器(CPU).存储器(RAM/ROM).计数器,以及I/O端口的芯片.从MCU内核架构来看,单片机有历经多年的8051,基于A ...