Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Express.js不允许我处理错误:发生异常:错误_runMicrotasks();_Javascript_Node.js_Http_Express - Fatal编程技术网

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

Javascript Express.js不允许我处理错误:发生异常:错误_runMicrotasks();,javascript,node.js,http,express,Javascript,Node.js,Http,Express,因此,我正在查询暴雪API Battle.Net以获取一些信息、角色名称以及它们所在的领域。当然,用户可以查询一个不存在的字符,所以暴雪向我抛出了一个404,而我的server.js文件不知道该怎么处理它,即使我放置了一些东西来处理它 相关server.js代码: var express = require('express'); var app = express(); var fs = require('fs'); var bodyParser = require('body-parser'

因此,我正在查询暴雪API Battle.Net以获取一些信息、角色名称以及它们所在的领域。当然,用户可以查询一个不存在的字符,所以暴雪向我抛出了一个404,而我的server.js文件不知道该怎么处理它,即使我放置了一些东西来处理它

相关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的内容,告诉用户:Character DNE!,但是vscode却给了我一些在本文标题中提到的红色错误代码(无论如何在vscode调试器中)


当我从命令行尝试此操作时,只要运行
node server.js
,当我单击搜索按钮时,什么都没有发生。我设置了断点,看起来函数没有从服务器得到响应。因此,无论发生什么,404都会发生,但我不知道如何处理它。

尝试将你的
应用程序放置在
应用程序下方/之后。post
Express.js在中间件功能中运行,因此你的listen会阻止所有前面的代码。

这是不正确的。与Express提供的中间件堆栈无关。调用
listen()
后,套接字将开始在指定的地址和端口上侦听传入连接。这样做不会阻止在
listen()
@peteb Awesome之后定义的任何路由处理程序,感谢您的澄清。如果你能提供和回答这个问题,那么它将是有益的。谢谢