nodejsノート2——ルーティングをお願いします.
異なるURL要求に対して、サーバは異なる反応を持つべきである.要求されたURLと他の必要なGETおよびPOSTパラメータをルーティングに提供したいです.その後、ルーティングはこれらのデータに基づいて対応するコードを実行する必要があります.必要なすべてのデータはrequestオブジェクトに含まれ,このオブジェクトはオンレクェスト関数の最初のパラメータ伝達として機能します.これらのデータを解析するためには、urlとquerystringモジュールの別の呼び出しが必要です.
URL:This module has utilities for URL reolution and parsing.Call
Parsed URL object have some or all of the follwing fields、depending on whether or not the y the y the the URL string.Any parts that are not in the URL string will not be in the parsed oject.Examples are show for the URL
特に、一連の要求処理プログラムを一つのオブジェクトを通して伝達し、このオブジェクトをロute()関数に松結合を用いて注入する必要がある.
URL:This module has utilities for URL reolution and parsing.Call
require('url')
to use it.Parsed URL object have some or all of the follwing fields、depending on whether or not the y the y the the URL string.Any parts that are not in the URL string will not be in the parsed oject.Examples are show for the URL
'http://user:[email protected]:8080/p/a/t/h?query=string#hash'
href
:The full URL that was originally parsed.Both the protocol and host are lowercased.Example: 'http://user:[email protected]:8080/p/a/t/h?query=string#hash'
protocol
:The request protocol、lowercased.Example: 'http:'
host
:The full lowercased host potion of the URL、including port information.Example: 'host.com:8080'
auth
:The authentication information potion of a URL.Example: 'user:pass'
hostname
:Just the lowercased hostname potion of the host.Example: 'host.com'
port
:The port number potion of the host.Example: '8080'
pathname
:The path section of the URL、that cores after the host and before the query、including the initial slash present.Example: '/p/a/t/h'
search
:The'query string'potion of the URL,including the leading question mark.Example: '?query=string'
path
:Concatension of pathname
and search
.Example: '/p/a/t/h?query=string'
query
:Either the'params'portion of the query string、or a querystring-parsed oject.Example: 'query=string'
or {'query':'string'}
hash
:The'fragment'potion of the URL including the pound-sign.Example: '#hash'
依存注入を用いて,より緩やかにルートモジュールを追加する.ルーティングターゲットの関数を要求処理プログラムと呼び、処理関数の実装を要求するには、request Handlersというモジュールを作成する必要があります.もちろん、他の名前も付けられます.そして、各要求処理プログラムに対して、ビットを占める関数を追加し、その後、これらの関数をモジュールとして導出することで、要求処理プログラムとルーティングモジュールを接続して、ルートを順路に合わせることができる.特に、一連の要求処理プログラムを一つのオブジェクトを通して伝達し、このオブジェクトをロute()関数に松結合を用いて注入する必要がある.
, handle[pathname](); 。
var handle = {} handle["/"] = requestHandlers.start; handle["/start"] = requestHandlers.start; handle["/upload"] = requestHandlers.upload;