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对象的pathhref字段有什么区别?

有什么情况一样吗?


编辑:我看到,在文档中的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'