【发布时间】:2018-05-26 21:27:30
【问题描述】:
(如果重要的话,我将 Blizzard.js npm 包与 Express 结合使用。)
我正在构建一个网络应用,让用户可以搜索某个视频游戏的统计数据 角色(玩家创建的个人资料),并且由于存在不存在的用户名,因此我试图确保我的应用可以在用户搜索没有帐户的用户名时处理它。
当我查询一个不存在的用户名时,服务器并没有让我的服务器函数看到并处理它,而是在一个仅称为 node.js 的文件中抛出了一些错误(在第 369 行,内容是 @ 987654322@)。我注意到我必须在调试器中点击“恢复”两次。但是,它不会使整个服务器崩溃。在用户方面,什么都没有发生。
但是,在我的服务器调用中,我通过假设角色不存在并将其告诉用户来确保处理任何不是 200 的内容。(我知道,懒惰。我应该只在抛出 404 时才这样做,但我还没有克服这个错误)。我的 if 语句应该捕捉到这一点,但我已经在调用上和调用内部设置了断点,它甚至没有击中我的断点。服务器调用永远不会触发。
调用我的服务器的代码:
$scope.searchCharacter = function(){
$scope.charName = "obviouslyInvalidCharacterName";
$scope.selectedRealm = {name: "Dalaran", id: 66};
var request = {name: $scope.charName, realm: $scope.selectedRealm};
$http.post('/searchCharacter', request)
.then(function(response) {
//request body
});
}
服务器调用:
app.post('/searchCharacter', jsonParser, function (req, res) {
blizzard.wow.character(['profile', 'stats', 'items', 'statistics'], { origin: 'us', realm: req.body.realm.name, name: req.body.name })
.then(response => {
if(response.status != 200){
res.send("That character doesn't exist! Please enter a valid character name.");
} else {
res.send(response.data);
}
});
});
错误信息:
Error:
Exception has occurred: Error
Error: Request failed with status code 404
at createError (c:\Users\RDubz\Documents\Interviews\EagleDream 12-7-17\Project\node_modules\blizzard.js\node_modules\axios\lib\core\createError.js:16:15)
at settle (c:\Users\RDubz\Documents\Interviews\EagleDream 12-7-17\Project\node_modules\blizzard.js\node_modules\axios\lib\core\settle.js:18:12)
at IncomingMessage.handleStreamEnd (c:\Users\RDubz\Documents\Interviews\EagleDream 12-7-17\Project\node_modules\blizzard.js\node_modules\axios\lib\adapters\http.js:191:11)
at emitNone (events.js:72:20)
at IncomingMessage.emit (events.js:166:7)
at endReadableNT (_stream_readable.js:921:12)
at nextTickCallbackWith2Args (node.js:442:9)
at process._tickCallback (node.js:356:17)
【问题讨论】:
标签: javascript node.js http express http-status-code-404