我有一个带有许多入口点的节点应用程序。所有入口点都需要根据请求参数获取游戏服务器。如果服务器不存在,我想向用户显示一条错误消息,并结束请求。
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 没有找到游戏服务器,它不会在“结束”语句之后停止,而是返回(带有空值),所以我在“gameServer.beginner_properties”中得到一个节点异常或“gameServer.advanced_properties”。
当然,我可以检查每个“.get”函数的返回值,但是,有很多这样的函数,检查每个函数的值很繁琐。
有没有办法从 getGameServer 函数中结束请求?