我在NodeJS中编写了以下代码:
var Url = require("url");
// create server ... req, res
var queryData = Url.parse(req.url, true);
console.log(queryData);
// listen (...)
对于来自浏览器/test?param1=val1
的网址,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
?如果我在网址中添加了#hash
,则对象中的href
未更改。
答案 0 :(得分:6)
href:最初解析的完整网址。协议和 主人是小写的。例: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
路径:路径名和搜索的连接。例: '/ P / A / T / H?查询=字符串'