次に、リクエストハンドラーが意味のある情報を返すことができるようにサーバーを変換します。
それを実装する方法を見てみましょう:
1.リクエストハンドラーを直接return(return())onrequest関数を介してユーザーに表示したい情報を返します。
2。まず、リクエストハンドラーにブラウザに表示する必要がある情報を返してもらいましょう。
requesthandler.jsを次のフォームに変更する必要があります。
コードコピーは次のとおりです。
function start(){
console.log( "request handler 'start'が呼び出されました。");
「hello start」を返します。
}
function upload(){
console.log( "要求ハンドラー 'アップロード'が呼び出されました。");
「hello upload」を返します。
}
exports.start = start;
exports.upload = upload;
同様に、リクエストルーティングには、リクエストハンドラーがサーバーに返信する情報が必要です。
したがって、router.jsを次の形式に変更する必要があります。
コードコピーは次のとおりです。
関数ルート(ハンドル、パス名){
console.log( "" + pathnameのリクエストをルーティングしようとしています);
if(typeof handle [pathname] === 'function'){
return handle [pathname]();
} それ以外 {
console.log( "" + pathnameのリクエストハンドラーは見つかりません);
"404 Not not ingod"を返します。
}
}
exports.route = route;
上記のコードに示すように、リクエストをルーティングできない場合、関連するエラーメッセージも返します。
最後に、以下に示すように、ブラウザへの要求ルートを介してリクエストハンドラーによって返されるコンテンツに応答できるように、サーバーをリファクタリングする必要があります。
コードコピーは次のとおりです。
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"});
var content = route(handle、pathname);
Response.write(content);
Response.End();
}
http.createserver(onrequest).listen(8888);
console.log( "サーバーが開始されました。");
}
exports.start = start;
リファクタリングアプリケーションを実行した場合:
リクエストhttp:// localhost:8888/start、ブラウザーは「hello start」を出力します。
要求http:// localhost:8888/uploadは「Hello Upload」出力を出力します。
http:// localhost:8888/fooを要求すると、「404は見つかりません」を出力します。
これは気持ちがいいので、次のセクションの概念について学びます:ブロッキング操作。