Url.parse()对象中的href和路径有什么区别?

时间:2013-10-08 05:40:41

标签: node.js

我在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对象中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'

为什么我不这样得href?如果我在网址中添加了#hash,则对象中的href 未更改

1 个答案:

答案 0 :(得分:6)

来自documentation

  

href:最初解析的完整网址。协议和   主人是小写的。例:   'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'

     

路径:路径名和搜索的连接。例:   '/ P / A / T / H?查询=字符串'