博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node.Js url模块详解
阅读量:4289 次
发布时间:2019-05-27

本文共 4209 字,大约阅读时间需要 14 分钟。

Node.Js  URL模块 
Node.Js中用户URL 格式化和反格式化模块

用于URL解析、处理等操作的解决方案

1.url.parse(urlStr[, parseQueryString][, slashesDenoteHost])

将url字符串转换成object对象

/**

 * urlStr:需要处理的url字符串
 * parseQueryString: 是否将查询参数也解析成对象
 *   为true时将使用查询模块分析查询字符串,默认为false
 * slashesDenoteHost: 解析主机处理,双斜线表示主机
 *  默认为false,//foo/bar 形式的字符串将被解释成 { pathname: ‘//foo/bar' }
 *  如果设置成true,//foo/bar 形式的字符串将被解释成  { host: ‘foo', pathname: ‘/bar' }
 */

实例1,仅指定url字符解析成对象

var url=require('url');var url1='http://calc.gongjuji.net/byte/?name=zhangsan&age=18#one#two';var result=url.parse(url1);// { protocol: 'http:',    //使用协议//   slashes: true,        ////   auth: null,		   // 验证信息//   host: 'calc.gongjuji.net', //全小写的主机部分的URL,包括端口信息。//   port: null,				//端口//   hostname: 'calc.gongjuji.net',//小写的主机部分的主机//   hash: '#one#two',			   //页面锚点参数部分//   search: '?name=zhangsan&age=18',//查询参数部分,带?//   query: 'name=zhangsan&age=18',  //查询参数部分//   pathname: '/byte/',			 //目录部分//   path: '/byte/?name=zhangsan&age=18',//目录+参数部分//   href: 'http://calc.gongjuji.net/byte/?name=zhangsan&age=18#one#two'  //最初解析的完整的网址。双方的协议和主机是小写。// }//console.info(result);
实例2 ,指定是否解析参数部分成对象

//参数解析var result2=url.parse(url1,true);// { protocol: 'http:',//   slashes: true,//   auth: null,//   host: 'calc.gongjuji.net',//   port: null,//   hostname: 'calc.gongjuji.net',//   hash: '#one#two',//   search: '?name=zhangsan&age=18',//   query: { name: 'zhangsan', age: '18' }, //页面参数部分,已经解析成对象了//   pathname: '/byte/',//   path: '/byte/?name=zhangsan&age=18',//   href: 'http://calc.gongjuji.net/byte/?name=zhangsan&age=18#one#two' }//console.info(result2);
实例3,主机特殊解析

//双斜线表示主机var url2='//www.gongjuji.net/byte/?name=zhangsan#one';// { protocol: null,//   slashes: true,//   auth: null,//   host: 'www.gongjuji.net',//   port: null,//   hostname: 'www.gongjuji.net',//   hash: '#one',//   search: '?name=zhangsan',//   query: { name: 'zhangsan' },//   pathname: '/byte/',//   path: '/byte/?name=zhangsan',//   href: '//www.gongjuji.net/byte/?name=zhangsan#one' }var result3=url.parse(url2,true,true);console.info(result3);
2.url.format(urlObj)  将json对象格式化成字符串

var url=require('url');var obj1={ protocol: 'http:',      slashes: true,         auth: null,		    host: 'calc.gongjuji.net',   port: null,				  hostname: 'calc.gongjuji.net',  hash: '#one#two',			     search: '?name=zhangsan&age=18',  query: 'name=zhangsan&age=18',    pathname: '/byte/',			   path: '/byte/?name=zhangsan&age=18',  href: 'http://calc.gongjuji.net/byte/?name=zhangsan&age=18#one#two' };var url1=url.format(obj1);console.log(url1);//http://calc.gongjuji.net/byte/?name=zhangsan&age=18#one#two//请求参数为为json对象var obj2={ protocol: 'http:',slashes: true,auth: null,host: 'calc.gongjuji.net',port: null,hostname: 'calc.gongjuji.net',hash: '#one#two',search: '?name=zhangsan&age=18',query: { name: 'zhangsan', age: '18' }, //页面参数部分,已经解析成对象了pathname: '/byte/',path: '/byte/?name=zhangsan&age=18',href: 'http://calc.gongjuji.net/byte/?name=zhangsan&age=18#one#two' };var url2=url.format(obj2);console.log(url2); //http://calc.gongjuji.net/byte/?name=zhangsan&age=18#one#two//缺少参数的情况var obj3={ protocol: null,slashes: true,auth: null,host: 'www.gongjuji.net',port: null,hostname: 'www.gongjuji.net',hash: '#one',search: '?name=zhangsan',query: { name: 'zhangsan' },pathname: '/byte/',path: '/byte/?name=zhangsan',href: '//www.gongjuji.net/byte/?name=zhangsan#one' };var url3=url.format(obj3);console.log(url3);//www.gongjuji.net/byte/?name=zhangsan#one
3.url.resolve(from, to)  

返回从根目录指定到当前目录的绝对路径url

1.返回结果去除了参数和锚点
2.返回结果标准url路径格式

var url=require('url');//指定相对路径var url1=url.resolve('http://www.gongjuji.net/one/two/three','four');console.log(url1); //http://www.gongjuji.net/one/two/four//指定根目录的相对路径var url3=url.resolve('http://www.gongjuji.net/one/two/three','/four');console.log(url3); //http://www.gongjuji.net/four//带参数的相对路径var url2=url.resolve('http://www.gongjuji.net/one/two/three?name=zhangsan','four');console.log(url2); //http://www.gongjuji.net/one/two/four//非标准分隔符的原路径var url4=url.resolve('http://www.gongjuji.net\\one#name1','/four');console.log(url4);//http://www.gongjuji.net/four//非标准分隔符的相对路径var url5=url.resolve('http://www.gongjuji.net/one','\\two\\three');console.log(url5);//http://www.gongjuji.net/two/three

转载地址:http://byogi.baihongyu.com/

你可能感兴趣的文章
ListView控件性能提升
查看>>
android下拉刷新功能---教你实现简单的ListView下拉刷新
查看>>
ListView分页展示数据功能一(按钮方式)
查看>>
Android四大组件之服务(一)-----服务基础功能简述
查看>>
Android通知Notification入门小例子(一)
查看>>
Android中通知的提示音、震动和LED灯效果小例子
查看>>
SQLite数据库创建、更新入门
查看>>
SQLite数据库的增删改查
查看>>
Adb connection Error:远程主机强迫关闭一个现有的连接--解决方法
查看>>
Tomcat服务器热启动,解决部署源码时每次手动重启Tomcat问题
查看>>
mysql数据库 向表中添加字段
查看>>
根据图片完整路径,获得图片的宽和高,判断是横版还是竖版图片
查看>>
Linux服务器上修改Mysql的密码
查看>>
Fragment碎片入门教程
查看>>
Android UI根据屏幕分辨率决定加载布局
查看>>
Java面试总结
查看>>
Processing of multipart/form-data request failed. Stream ended unexpectedly
查看>>
Linux上定时备份MySQL数据库
查看>>
xml解析之PULL
查看>>
安卓大神开源项目
查看>>