nodejs笔记三--url处理、Query String;
URL--该模块包含用以 URL 解析的实用函数。 使用 require('url')
来调用该模块。
一、parse函数的基础用法
parse函数的作用是解析url,返回一个json格式的数组,请看如下示例:
var url = require('url'); url.parse('http://sports.sina.com.cn/nba/')
运行结果:
protocol: 'http:', slashes: true, auth: null, host: 'sports.sina.com.cn', port: null, hostname: 'sports.sina.com.cn', hash: null, search: null, query: null, pathname: '/nba/', path: '/nba/', href: 'http://sports.sina.com.cn/nba/' }
二、parse函数 —— 条件解析;
parse函数的第二个参数是布尔类型,当参数为true时,会将查询条件也解析成json格式的对象。
var url = require('url'); url.parse('http://sports.sina.com.cn/nba/',true)
运行结果:
protocol: 'http:', slashes: true, auth: null, host: 'sports.sina.com.cn', port: null, hostname: 'sports.sina.com.cn', hash: null, search: '', query: {}, pathname: '/nba/', path: '/nba/', href: 'http://sports.sina.com.cn/nba/' }
三、parse函数 —— 解析主机;
parse函数的第三个参数也是布尔类型的,当参数为true,解析时会将url的"//"和第一个"/"之间的部分解析为主机名,示例如下:
var url = require('url'); url.parse('http://sports.sina.com.cn/nba/',false,true)
运行结果:
protocol: 'http:', slashes: true, auth: null, host: 'sports.sina.com.cn', port: null, hostname: 'sports.sina.com.cn', hash: null, search: null, query: null, pathname: '/nba/', path: '/nba/', href: 'http://sports.sina.com.cn/nba/' }
四、url.format(urlObj)
format函数的作用与parse相反,它的参数是一个JSON对象,返回一个组装好的url地址,请看如下示例:
var url = require('url'); url.format({ protocol: 'http:', hostname: 'www.baidu.com', port: '80', pathname: '/news', query: { page: 1 } });
运行结果:
'http://www.baidu.com:80/news?page=1'
五、resolve函数的基础用法;
url.resolve(from, to),resolve函数的参数是两个路径,第一个路径是开始的路径或者说当前路径,第二个则是想要去往的路径,返回值是一个组装好的url,示例如下:
var url = require('url'); url.resolve('http://example.com/', '/one') // 'http://example.com/one' url.resolve('http://example.com/one', '/two') // 'http://example.com/two'
Query String--这个模块提供一些处理 query string 的工具。它提供下列方法:
一、querystring.stringify(obj, [sep], [eq])
序列化一个对象到一个 query string。可以选择是否覆盖默认的分割符('&'
)和分配符('='
)。
querystring.stringify({name:'jone',age:28},',',':') // 运行结果 'name:jone,age:28'
二、querystring.parse(str, [sep], [eq], [options])
将一个 query string 反序列化为一个对象。可以选择是否覆盖默认的分割符('&'
)和分配符('='
)。
querystring.parse('name=jone&age=28&work=teacher&address') // 运行结果 { name: 'jone', age: '28', work: 'teacher', address: '' }