さまざまなリクエストに関するさまざまなフィードバックを提供するために、イベントプロセッサモジュールを紹介します。
モジュールはrequesthandlersという名前です。最初に2つのプレースホルダー関数、start()とupload()を追加します。
requesthandlers.jsのコードは次のとおりです。
コードコピーは次のとおりです。
function start(){
console.log( "アクセス時にこれを呼び出してください /星。");
}
function upload(){
console.log( "アクセス/アップロード時にこれを呼び出します。");
}
exports.start = start;
exports.upload = upload;
実際のアプリケーションでは、リクエストハンドラーの数が増え続けます。もちろん、新しいURLまたはリクエストハンドラーがあるたびに、ルートでリクエストを完了したくありません。
ハンドラーへのマッピングを繰り返し。
さらに、Request == xの場合は多くの場合、ルートにハンドラーYを呼び出したくありません。これにより、コードが乱雑でプロフェッショナルに見えます。
ここでは、連想配列の概念を使用して、この要件を処理します。一連の要求ハンドラーをオブジェクトに渡し、このオブジェクトをゆるく結合した方法でルート()関数に挿入する必要があります。
最初にこのオブジェクトをメインファイルindex.jsに紹介しましょう。
コードコピーは次のとおりです。
var server = require( "./ server");
var router = require( "./ router");
var requesthandlers = require( "./ requesthandlers");
var handle = {};
["/"] = requesthandlers.start;
["/start"] = requesthandlers.start;
["/upload"] = requesthandlers.upload;
server.start(router.route、handle);
たとえば、A /showマップを追加する場合は、ハンドル[" /show"] requesthandlers.showを追加するだけです。
ははは、コードはもっと簡潔で秩序だったですか? !
次に、ハンドルオブジェクトをサーバーに渡すと、サーバー.jsが次のように変更されます。
コードコピーは次のとおりです。
var http = require( "http");
var url = require( "url");
関数開始(ルート、ハンドル){
function onrequest(request、response){
var pathname = url.parse(request.url).pathname;
console.log( "request for" + pathname + "受信");
ルート(ハンドル、パス名);
Response.writehead(200、{"content-type": "text/plain"});
Response.Write( "Hello World");
Response.End();
}
http.createserver(onrequest).listen(8888);
console.log( "サーバーが開始されました。");
}
exports.start = start;
Route.jsファイルのルート()関数をそれに応じて変更します。
コードコピーは次のとおりです。
関数ルート(ハンドル、パス名){
console.log( "" + pathnameのリクエストをルーティングしようとしています);
if(typeof handle [pathname] === 'function'){
[pathname]()をhandleします;
} それ以外 {
console.log( "" + pathnameのリクエストハンドラーは見つかりません);
}
}
exports.route = route;
ハンドルオブジェクトをサーバーにパラメーターとして渡し、ルートでそれを受信し、最後にルートは現在のパスに対応するリクエストハンドラーが存在するかどうかを決定します。存在する場合は、対応する関数を呼び出します。
関連配列から要素を取得するのと同じ方法で、渡されたオブジェクトからリクエスト処理機能を取得できます。そのため、ハンドル[パスネーム]();のようなシンプルでスムーズな表現があります。
このようにして、さまざまなリクエストに従って異なる処理を行うことができます。
次のセクションでは、コードをさらに修正して、サーバーが実際のフィードバック操作を作成できるようにします。