2013-10-08 97 views
5

我已经写在的NodeJS下面的代码:Url.parse()对象中的href和path有什么区别?

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' } 

什么是pathhref领域之间的区别,从解析url对象?

有没有什么情况他们是不是一样吗?


编辑:我看到文档中的href是 “The full URL that was originally parsed. Both the protocol and host are lowercased.”。

例: 'http://user:[email protected]:8080/p/a/t/h?query=string#hash'

为什么我没有得到href这样吗?如果我向网址添加#hash,则href从对象中是没有更改

+0

http://nodejs.org/api/url.html –

回答

6

documentation

HREF:最初解析的完整URL。协议和 主机都是小型的。示例: 'http://user:[email protected]:8080/p/a/t/h?query=string#hash'

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

+0

我更新了我的问题。为什么'#hash'没有出现在对象的'href'字段中? –

+1

当通过浏览器请求URL时,URL的'hash'部分不会发送到服务器。你可以通过检查你的'req.url'源参数来看到。 –

+1

这是正确的。谢谢! –

相关问题