多くのエントリ ポイントを持つノード アプリケーションがあります。すべてのエントリ ポイントは、リクエスト パラメータに基づいてゲーム サーバーをフェッチする必要があります。サーバーが存在しない場合は、ユーザーにエラー メッセージを表示して、リクエストを終了したいと考えています。
function getGameServer(gametype, httpResponse) {
if (gameServers[gametype])
return gameServers[gametype];
else
httpResponse.end("Unknown game type '"+gametype+"'");
}
....
app.get('/:gametype/beginner', function(req,res) {
var gameServer = getGameServer(req.params.gametype, res);
console.log(gameServer.beginner_properties);
...
});
app.get('/:gametype/advanced', function(req,res) {
var gameServer = getGameServer(req.params.gametype, res);
console.log(gameServer.advanced_properties);
...
});
問題は、関数 getGameServer がゲーム サーバーを見つけられない場合、"end" ステートメントの後で停止せずに (null 値で) 戻るため、"gameServer.beginner_properties" でノード例外が発生することです。または「gameServer.advanced_properties」。
もちろん、各「.get」関数で戻り値を確認できますが、そのような関数が多数あり、それぞれの値を確認するのは面倒です。
getGameServer 関数内からリクエストを終了する方法はありますか?