所以我正在向暴雪API Battle.Net查询一些信息,角色名称以及它们所处的领域。当然,用户可以查询不存在的角色,因此暴雪会抛回404对我和我的server.js文件不知道如何处理它,即使我放置了一些东西来处理它。
Releveant server.js代码:
var express = require('express');
var app = express();
var fs = require('fs');
var bodyParser = require('body-parser');
var jsonParser = bodyParser.json();
const blizzard = require('blizzard.js').initialize({apikey: "dummy"});
app.use(express.static(__dirname + '/Source'));
//Listen on port 3000
app.listen(3000, function() {
console.log("Launch successful. To access app, open your browser and insert the following URL into your address bar: http://localhost:3000/");
});
app.post('/buttonpress', jsonParser, function (req, res) {
blizzard.wow.character(['profile'], { 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 {
console.log(response.data);
res.send(response.data);
}
});
});
我尝试通过向客户端发送内容告诉用户来处理任何不是200的内容:字符DNE!,而是vscode给了我一些在本文标题中提到的红色错误代码(无论如何在vscode调试器中)。
当我从命令行尝试此操作时,只需运行node server.js
,单击搜索按钮时没有任何反应。我设置了断点,看起来该函数没有得到服务器的响应。所以404无论如何都会发生,但我无法弄清楚如何处理它。
答案 0 :(得分:-2)
尝试将app.listen
Express.js运行在中间件功能之下/之后app.post
放置,以便您的监听功能阻止所有前面的代码。