基础语法学习
介绍url地址包含的对象
URL
稳定度: 3 - 稳定
该模块包含用以 URL 解析的实用函数。 使用 require('url') 来调用该模块。
不同的 URL 字符串解析后返回的对象会有一些额外的字段信息,仅当该部分出现在 URL 中才会有。以下是一个 URL 例子:
'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
href: 所解析的完整原始 URL。协议名和主机名都已转为小写。
例如: `'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'`
protocol: 请求协议,小写
例如: `'http:'`
host: URL主机名已全部转换成小写, 包括端口信息
例如: `'host.com:8080'`
auth:URL中身份验证信息部分
例如: `'user:pass'`
hostname:主机的主机名部分, 已转换成小写
例如: `'host.com'`
port: 主机的端口号部分
例如: `'8080'`
pathname: URL的路径部分,位于主机名之后请求查询之前, including the initial slash if present.
例如: `'/p/a/t/h'`
search: URL 的“查询字符串”部分,包括开头的问号。
例如: `'?query=string'`
path: pathname 和 search 连在一起。
例如: `'/p/a/t/h?query=string'`
query: 查询字符串中的参数部分(问号后面部分字符串),或者使用 querystring.parse() 解析后返回的对象。
例如: `'query=string'` or `{'query':'string'}`
hash: URL 的 “#” 后面部分(包括 # 符号)
例如: `'#hash'`
Query String
querystring.stringify(obj, [sep], [eq])
序列化一个对象到一个 query string。可以选择是否覆盖默认的分割符('&')和分配符('=')。
示例:
querystring.stringify({foo: 'bar', baz: 'qux'}, ';', ':')
// 返回如下字串
'foo:bar;baz:qux'
querystring.parse(str, [sep], [eq], [options])
将一个 query string 反序列化为一个对象。可以选择是否覆盖默认的分割符('&')和分配符('=')。
options对象可能包含maxKeys属性(默认为1000),它可以用来限制处理过的键(key)的数量.设为0可以去除键(key)的数量限制.
示例:
querystring.parse('foo=bar&baz=qux&baz=quux&corge')
// returns
{ foo: 'bar', baz: ['qux', 'quux'], corge: '' }
querystring.escape
供 querystring.stringify 使用的转意函数,在必要的时候可被重写。
querystring.unescape
供 querystring.parse 使用的反转意函数,在必要的时候可被重写。