原生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);

最新文章

  1. Oracle 11.2.0.1的一个Bug,客户端报ORA-03113: 通信通道的文件结尾
  2. ActionScript 3.0 自写类整理笔记(十三)——Random类
  3. 脚本放在 &lt;body&gt; 元素的底部
  4. HDU 1548 A strange lift (bfs / 最短路)
  5. Class Prefix(Xcode6以后设置类前缀)
  6. bind启动时提示953端口被使用
  7. winfrom DataSet和实体类的相互转换
  8. Navicat连接Oracle报错_Cannot load OCI DLL 87
  9. java8Stream原理深度解析
  10. Kakfa消息投递语义
  11. 用vector与bitset分别创建1亿以内的素数表,比较快慢
  12. Luogu P1247 取火柴游戏
  13. cto职责
  14. 金币(NOIP2015)
  15. [转]OrCAD PSpice DIODE model parameter
  16. (转)我是如何在SQLServer中处理每天四亿三千万记录的
  17. 【BZOJ】4293: [PA2015]Siano 线段树上二分
  18. 紫金桥OPC接口使用技巧
  19. leetcode-palindrome partitioning-ZZ
  20. 【LibreOJ】#538. 「LibreOJ NOIP Round #1」数列递推

热门文章

  1. Wamp Apache 启动失败检测方法
  2. java并发系列(二)-----线程之间的协作(wait、notify、join、CountDownLatch、CyclicBarrier)
  3. 直接在安装了redis的Linux机器上操作redis数据存储类型--set类型
  4. OPGL+GLFW+GLEW配置详细步骤
  5. Pycharm如何在控制台输出窗口中使用Python解释器
  6. python基础--魔法方法、迭代器、上下文管理
  7. php的FTP操作类
  8. uva 11300 分金币(利用绝对值加和进行求出最小值)
  9. Leetcode46. Permutations全排列
  10. ubuntu上安装nodejs和npm