Javascript Express.js不允许我处理错误:发生异常:错误_runMicrotasks();
因此,我正在查询暴雪API Battle.Net以获取一些信息、角色名称以及它们所在的领域。当然,用户可以查询一个不存在的字符,所以暴雪向我抛出了一个404,而我的server.js文件不知道该怎么处理它,即使我放置了一些东西来处理它 相关server.js代码: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'
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之后定义的任何路由处理程序,感谢您的澄清。如果你能提供和回答这个问题,那么它将是有益的。谢谢