以下是我的代码:
const http = require('http');
var server1 = http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('request successfully proxied!' + '\n' + JSON.stringify(req.headers, true, 2) + '\n' + req.url);
res.end();
throw new Error("Error!!!");
});
server1.on("error", err=>console.log(err));
server1.listen(5060);
为什么回调抛出的异常没有被server1.on("error", ...) 处理而进程停止了? 如果这样的异常不能通过监听“error”事件来处理, 我该如何处理这样的异常,让http服务器从那时起仍然可以正常运行?
最佳答案
使用emit
代替throw
:
const http = require('http');
var server1 = http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('request successfully proxied!' + '\n' + JSON.stringify(req.headers, true, 2) + '\n' + req.url);
res.end();
// throw new Error("Error!!!");
this.emit('error', new Error("Error!!!"));
});
server1.on("error", err=>console.log(err));
server1.listen(5060);
关于javascript - Node js http服务器错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35704617/