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: '' }

相关API参考:http://nodeapi.ucdok.com/#/api/all.html