一般的に、サーバーは、異なるURL要求に対して異なる応答を持つ必要があります。要求されたURLおよびその他の必要なGETパラメーターをルートに提供する必要があります。その後、ルートはこのデータに基づいて対応するコードを実行する必要があります。必要なデータはすべて、onrequest()コールバック関数の最初のパラメーターとして渡されるリクエストオブジェクトに含まれています。このデータを解析するには、追加のモジュールを呼び出す必要があります。つまり、URLとクエリモジュールです。
URL:これ
モジュールには、URL解像度と解析のユーティリティがあります。 ['url')を呼び出します
使用してください。
解析されたURLオブジェクトには、URL文字列に存在するかどうかに応じて、次のフィールドの一部またはすべてがあります。 URL文字列にない部分は、解析されたオブジェクトにはありません。 URLの例が示されています
'http:// user:[email protected]:8080/p/a/t/h?query = string#hash'
HREF:元々解析された完全なURL。プロトコルとホストの両方が低くなっています。
例: 'http:// user:[email protected]:8080/p/a/h?query = string#hash'
プロトコル:リクエストプロトコル、ローケース。
例:「HTTP:」
ホスト:ポート情報を含むURLの完全な低いホスト部分。
例:「host.com:8080」
AUTH:URLの認証情報部分。
例:「ユーザー:パス」
ホスト名:ホストの低いホスト名部分のみ。
例:「host.com」
ポート:ホストのポート番号部分。
例: '8080'
PathName:Hostの後にクエリの前に来るURLのパスセクション。
例: '/p/a/t/h'
検索:主要な疑問符を含むURLの「クエリ文字列」部分。
例: '?query = string'
パス:パス名と検索の連結。
例: '/p/a/t/h?query = string'
クエリ:クエリ文字列の「パラメージ」部分、またはクエリストリング型のオブジェクトのいずれか。
例: 'query = string'または{'query': 'string'}
ハッシュ:ポンドシグインを含むURLの「フラグメント」部分。
例:「#Hash」
依存関係注入を使用して、ルーティングモジュールをよりゆるく追加します。ルーティングターゲットである関数は、リクエストハンドラーと呼ばれます。リクエストハンドラーの実装には、RequestHandlersと呼ばれるモジュールを作成する必要があります。リクエストハンドラーごとに、プレースホルダー関数を追加してから、これらの機能をモジュールメソッドとしてエクスポートして、リクエストハンドラーとルーティングモジュールをルートに接続して、ルートに従うことができるようにします。
特に、一連の要求ハンドラーをここでオブジェクトに渡す必要があり、オブジェクトをゆるい結合方法を使用してルート()関数に注入する必要があることに注意してください。
関連配列から要素を取得するのと同じ方法で、渡されたオブジェクトからリクエスト処理機能を取得できます。そのため、ハンドル[PathName]();コードは次のようになります:
var handle = {} handle ["/"] = requesthandlers.start; handle ["/start"] = requesthandlers.start; handle ["/upload"] = requesthandlers.upload;