URL(核心模块) 导入:const url = require("url")
(/c绝对路径;表示当前路径下的c)
url.parse()
把url字符串解析为一个url对象,第二个参数表示是否解析query参数
const urlObj = url.parse("https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=node&rsv_pq=ff75a08b0000137a&rsv_t=55fdfdKrQwJJnDdh5FpKKCVoFII5Gl2u5HZ2TDjV6rRaehpNrH6Bwz4o21E&rqlang=cn&rsv_enter=1&rsv_sug3=8&rsv_sug2=0&inputT=3313&rsv_sug4=3312")
console.log(urlObj)
url.format()
方法会从一个对象返回一个路径字符串。 与 path.parse() 相反
console.log(url.format(urlObj))
url.resolve()
方法会把一个路径或路径片段的序列解析为一个绝对路径
给定的路径的序列是从右往左被处理的,后面每个 path 被依次解析,直到构造完成一个绝对路径。 例如,给定的路径片段的序列为:/foo、/bar、baz,则调用 path.resolve(‘/foo‘, ‘/bar‘, ‘baz‘) 会返回 /bar/baz。
如果处理完全部给定的 path 片段后还未生成一个绝对路径,则当前工作目录会被用上
生成的路径是规范化后的,且末尾的斜杠会被删除,除非路径被解析为根目录。
console.log(url.resolve(‘/one/two/three‘, ‘/c‘)) // /c
console.log(url.resolve(‘/one/two/three‘, ‘./c‘)) // /one/two/c
console.log(url.resolve(‘/one/two/three‘, ‘../c‘)) // /one/c
console.log(url.resolve(‘/foo/bar‘, ‘baz‘)) // /foo/baz
url.relative(from, to)
path.relative() 方法返回从 from 到 to 的相对路径(基于当前工作目录)。 如果 from 和 to 各自解析到同一路径(调用 path.resolve()),则返回一个长度为零的字符串。
如果 from 或 to 传入了一个长度为零的字符串,则当前工作目录会被用于代替长度为零的字符串
querystring(核心模块) 导入:const querystring = require("querystring");
querystring.escape()
对给定的 str 进行 URL 编码
const querystring = require("querystring");
const url = require("url");
const param = querystring.escape("a?c=d&e=f");
console.log(param) //a%3Fc%3Dd%26e%3Df
const link = "http://www.baidu.com?param=" + param;
const urlObj = url.parse(link, true);
console.log(urlObj.query.param) //a?c=d&e=f
querystring.parse()
会把一个 URL 查询字符串 str 解析成一个键值对的集合
例子,查询字符串 ‘foo=bar&abc=xyz&abc=123‘ 被解析成:
{foo: ‘bar‘,abc: [‘xyz‘, ‘123‘]}
const querystring = require("querystring");
const url = ‘foo=bar&abc=xyz&abc=123‘
console.log( querystring.parse(url) ) //{ foo: ‘bar‘, abc: [ ‘xyz‘, ‘123‘ ] }
querystring.stringify()
通过遍历给定的 obj 对象的自身属性,生成 URL 查询字符串
const querystring = require("querystring");
const obj = {name: "dell", age: 23}
console.log( querystring.stringify(obj) ) //name=dell&age=23
console.log( querystring.parse(querystring.stringify(obj)) ) //{ name: ‘dell‘, age: ‘23‘ }
querystring.unescape(str)
对给定的 str 进行解码
const querystring = require("querystring");
const param = querystring.escape("a?c=d&e=f");
console.log(param) //a%3Fc%3Dd%26e%3Df
console.log( querystring.unescape(param) ) //a?c=d&e=f
http(核心模块)
200 301 302 304 404 500
cheerio第三方文件(轮子)