2013-10-08 9 views
5

私はNodeJSで書かれた次のコードを持っています。ブラウザ/test?param1=val1からqueryDataをurlにUrl.parse()オブジェクトのhrefとpathの違いは何ですか?

var Url = require("url"); 

// create server ... req, res 

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

// listen (...) 

は、このようなオブジェクトです:

{ 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を得ないのはなぜ? URLに#hashを追加した場合、オブジェクトからのhrefで、変更されていませんです。 documentationから

+0

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

答えて

6

の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

これは正しいです。ありがとう! –

関連する問題