5

我有以下用 NodeJS 编写的代码:

var Url = require("url");

// create server ... req, res

var queryData = Url.parse(req.url, true);
console.log(queryData);

// listen (...)

对于来自浏览器的 url,/test?param1=val1queryData是一个像这样的对象:

{ 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这样?如果我将 a 添加#hash到 url,则href来自对象的内容不会更改

4

1 回答 1

6

文档中:

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

路径:路径名和搜索的连接。示例:'/p/a/t/h?query=string'

于 2013-10-08T05:44:00.810 回答