nodejsの要求のルート概要
2417 ワード
通常は異なるURL要求に対して、サーバは異なる反応を持つべきである.要求されたURLと他の必要なGETおよびPOSTパラメータをルーティングに提供したいです.その後、ルーティングはこれらのデータに基づいて対応するコードを実行する必要があります.必要なすべてのデータはrequestオブジェクトに含まれ,このオブジェクトはオンレクェスト関数の最初のパラメータ伝達として機能します.これらのデータを解析するためには、urlとquerystringモジュールの別の呼び出しが必要です. URL:This module has utilities for URL reolution and parsing.Call require('url')to アメリカ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 port 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/t/h?query=string' query:Either the'params'portion of the query string,or a querystring-parsed oject.Example:'query=string'or'''string'' hash:The'fragment'potion of the URL including the pound-sign.Example:''hash' 依存注入を用いて,より緩やかにルートモジュールを追加する.ルーティングターゲットの関数を要求処理プログラムと呼び、処理関数の実装を要求するには、request Handlersというモジュールを作成する必要があります.もちろん、他の名前も付けられます.そして、各要求処理プログラムに対して、ビットを占める関数を追加し、その後、これらの関数をモジュールとして導出することで、要求処理プログラムとルーティングモジュールを接続して、ルートを順路に合わせることができる. 特に、ここでは一連の要求処理プログラムを一つのオブジェクトを通して伝達する必要があり、このオブジェクトは松結合方式でroute()関数に注入する必要がある.
関連配列から要素を取得するように、伝達されたオブジェクトから要求処理関数を取得することができます.したがって、ハンドル[pathname]のように簡潔で滑らかな形ができます.を選択します.コードは以下の通りです.
関連配列から要素を取得するように、伝達されたオブジェクトから要求処理関数を取得することができます.したがって、ハンドル[pathname]のように簡潔で滑らかな形ができます.を選択します.コードは以下の通りです.
var handle = {}
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;