Url.parse()对象中的href和path有什么区别?
我有下面的代码写在NodeJS中:
var Url = require("url"); // create server ... req, res var queryData = Url.parse(req.url, true); console.log(queryData); // listen (...)
对于来自浏览器/test?param1=val1
的url/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' }
parsing的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 '
为什么我不这样做? 如果我将一个#hash
添加到url,那么对象的href
不会被改变 。
从文档 :
href:最初parsing的完整url。 协议和主机都是小型的。 例如:' http:// user:pass@host.com:8080 / p / a / t / h?query = string#hash '
path:path名和search的连接。 例如:'/ p / a / t / h?query = string'