URL
1.url.parse(urlString[, parseQueryString[, slashesDenoteHost]]) 将url字符转成url对象
- urlString 要解析的 URL字符串。
- parseQueryString 如果设为 true,则返回的 URL 对象的 query 属性会是一个使用 querystring 模块的 parse() 生成的对象。 如果设为 false,则 query 会是一个未解析未解码的字符串。 默认为 false。
- slashesDenoteHost 如果设为 true,则 // 之后至下一个 / 之前的字符串会解析作为 host。 例如, //foo/bar 会解析为 {host: ‘foo’, pathname: ‘/bar’} 而不是 {pathname: ‘//foo/bar’}。 默认为 false。
2.url.format(URL[, options])将url对象转成url字符
- URL 一个对象
- options
- auth 如果序列化的URL字符串应该包含用户名和密码为true,否则为false。默认为true。
- fragment 如果序列化的URL字符串应该包含分段为true,否则为false。默认为true。
- search如果序列化的URL字符串应该包含搜索查询为true,否则为false。默认为true。
- unicode true 如果出现在URL字符串主机元素里的Unicode字符应该被直接编码而不是使用Punycode编码为true,默认为false。
3.url.resolve(from, to)url路径的拼接,替换
-
from 解析时相对的基本 URL。
-
to要解析的超链接 URL。
-
例子:
const url = require(‘url’);
url.resolve(’/one/two/three’, ‘four’); // ‘/one/two/four’
url.resolve(‘http://example.com/’, ‘/one’); // ‘http://example.com/one’
url.resolve(‘http://example.com/one’, ‘/two’); // ‘http://example.com/two’
querystring(查询字符串)
1.querystring.stringify(obj[, sep[, eq[, options]]])解析对象部分转成URLsearch
-
obj 要序列化为 URL 查询字符串的对象。
-
sep用于在查询字符串中分隔键值对的子字符串。默认值: ‘&’。
-
eq 用于在查询字符串中分隔键和值的子字符串。默认值: ‘=’。
-
options
-
encodeURIComponent 在查询字符串中将 URL
不安全字符转换为百分比编码时使用的函数。默认值: querystring.escape()。
querystring.stringify() 方法通过迭代对象的自身属性从给定的 obj 生成 URL 查询 字符串 。querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' }); // 返回 'foo=bar&baz=qux&baz=quux&corge=' querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':'); // 返回 'foo:bar;baz:qux'
2.querystring.parse(str[, sep[, eq[, options]]]) 解析URLsearch部分转成对象
-
str 要解析的 URL 查询字符串。
-
sep 用于在查询字符串中分隔键值对的子字符串。默认值: ‘&’。
-
eq用于在查询字符串中分隔键和值的子字符串。默认值: ‘=’。
-
options
-
decodeURIComponent解码查询字符串中的百分比编码字符时使用的函数。默认值: querystring.unescape()。
-
maxKeys 指定要解析的键的最大数量。指定 0 可移除键的计数限制。默认值: 1000。 querystring.parse()
方法将 URL 查询字符串 str 解析为键值对的集合。
例如,查询字符串 ‘foo=bar&abc=xyz&abc=123’ 被解析为:{ foo: 'bar', abc: ['xyz', '123'] }
querystring.parse() 方法返回的对象不是原型继承自 JavaScript Object。 这意味着典型的 Object 方法如 obj.toString()、 obj.hasOwnProperty() 等都没有定义并且不起作用。
默认情况下,将假定查询字符串中的百分比编码字符使用 UTF-8 编码。 如果使用其他字符编码,则需要指定其他 decodeURIComponent 选项:// 假设 gbkDecodeURIComponent 函数已存在。 querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null, { decodeURIComponent: gbkDecodeURIComponent });