我用NodeJS编写了以下代码:
var Url = require("url");
// create server ... req, res
var queryData = Url.parse(req.url, true);
console.log(queryData);
// listen (...)
对于来自浏览器/test?param1=val1
的 url,queryData
是这样的对象:
{ protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: '?param1=val1',
query: { param1: 'val1' },
pathname: '/test',
path: '/test?param1=val1',
href: '/test?param1=val1' }
解析的 url 对象中的path
字段和href
字段有什么区别?
有没有不一样的情况?
编辑:我看到在文档中href
是" The full URL that was originally parsed. Both the protocol and host are lowercased.
"。
示例:"http://user:pass@host.com:8080/p/a/t/h?query=string#hash">
为什么我不喜欢这样href
?如果我向 url 添加#hash
,则对象的href
不会更改。
从文档中:
href:最初解析的完整 URL。协议和 主机为小写。例: "http://user:pass@host.com:8080/p/a/t/h?query=string#hash">
路径:路径名和搜索的串联。例: '/p/a/t/h?query=string'