1. URL模块作用:
url
模块用于处理与解析 URL。 使用方法如下:
const url = require('url');
2. URL 字符串与 URL 对象
URL 字符串是结构化的字符串,包含多个含义不同的组成部分。 解析字符串后返回的 URL 对象,每个属性对应字符串的各个组成部分。
url
模块提供了两套 API 来处理 URL:一个是旧版本遗留的 API,一个是实现了 WHATWG标准的新 API。
遗留的 API 还没有被废弃,保留是为了兼容已存在的应用程序。 新的应用程序应使用 WHATWG 的 API。
WHATWG 的 API 与遗留的 API 的区别如下。 在下图中,URL 'http://user:pass@sub.example.com:8080/p/a/t/h?query=string#hash'
上方的是遗留的 url.parse()
返回的对象的属性。 下方的则是 WHATWG 的 URL
对象的属性。
WHATWG 的 origin
属性包括 protocol
和 host
,但不包括 username
或 password
。
3. 应用举例(使用旧版API)
<script src="http://127.0.0.1:3000/getScript?callback=showInfo"></script>
// 这个核心模块,能够解析 URL地址,从而拿到 pathname query
const urlModule = require('url');
server.on('request', function (req, res) {
let url = urlModule.parse(req.url, true);
console.log(url);
});
// Url {
// protocol: null,
// slashes: null,
// auth: null,
// host: null,
// port: null,
// hostname: null,
// hash: null,
// search: '?callback=showInfo',
// query: { callback: 'showInfo' },
// pathname: '/getScript',
// path: '/getScript?callback=showInfo',
// href: '/getScript?callback=showInfo'
// }