Express.js不让我处理错误:发生异常:错误_runMicrotasks();

时间:2017-12-11 18:57:55

标签: javascript node.js http express

所以我正在向暴雪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无论如何都会发生,但我无法弄清楚如何处理它。

1 个答案:

答案 0 :(得分:-2)

尝试将app.listen Express.js运行在中间件功能之下/之后app.post放置,以便您的监听功能阻止所有前面的代码。