次に、リクエスト ハンドラーが意味のある情報を返せるようにサーバーを変更します。
実装方法を見てみましょう:
1. リクエスト ハンドラーが、onRequest 関数を通じてユーザーに表示したい情報を直接返します (return())。
2. まず、ブラウザに表示する必要がある情報をリクエスト ハンドラーに返させることから始めましょう。
requestHandler.js を次の形式に変更する必要があります:
関数 start() {
console.log("リクエストハンドラー「start」が呼び出されました。");
"Hello Start" を返します;
}
関数アップロード() {
console.log("リクエストハンドラー「アップロード」が呼び出されました。");
"こんにちはアップロード" を返します;
}
exports.start = 開始;
exports.upload = アップロード;
同様に、リクエスト ルーティングは、リクエスト ハンドラーによって返された情報をサーバーに返す必要があります。
したがって、router.js を次の形式に変更する必要があります:
関数ルート(ハンドル, パス名) {
console.log("パス名に対するリクエストをルーティングしようとしています);
if (ハンドルの種類[パス名] === '関数') {
return ハンドル[パス名]();
} else {
console.log("パス名に対するリクエスト ハンドラーが見つかりません);
return "404 見つかりません";
}
}
エクスポート.ルート=ルート;
上記のコードに示されているように、リクエストをルーティングできない場合は、関連するエラー情報も返します。
最後に、次のように、リクエスト ハンドラーによってリクエスト ルート経由で返されたコンテンツでブラウザに応答するように、server.js をリファクタリングする必要があります。
var http = require("http");
var url = require("url");
function start(route, handle) {
function onRequest(リクエスト, レスポンス) {
var pathname = url.parse(request.url).pathname;
console.log("「 pathname " のリクエストを受信しました。」);
response.writeHead(200, {"Content-Type": "text/plain"});
var content = ルート(ハンドル, パス名);
応答.write(コンテンツ);
応答.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 Not found」と出力されます。
これは良いことだと思います。次のセクションでは、操作のブロックという概念について学びます。