Javascript Node.js http.createServer如何获取错误

Javascript Node.js http.createServer如何获取错误,javascript,node.js,Javascript,Node.js,我是node.js新手,正在尝试一些基本的东西 我的密码是 var http = require("http"); http.createServer(function(request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end(); }).listen(8888); 这里有一个问题-调用

我是node.js新手,正在尝试一些基本的东西

我的密码是

var http = require("http");
http.createServer(function(request, response) {
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("Hello World");
    response.end();
}).listen(8888);
这里有一个问题-调用createServer时如何看到抛出的异常(或事件)?我试过了,但似乎不起作用。在模块的API中,我找不到对它的任何引用。我之所以这样问是因为我意外地在一个端口(8888)上启动了一台服务器,而我得到的错误(在命令行中)是error:EDDRINUSE,这很有用,但如果能够理解如何在节点中捕获错误就好了。

您可以使用

process.on('uncaughtException', function(e){
    console.log(e);
});

处理未捕获的异常。来自web服务器的任何未经处理的异常都可能像这样被捕获。

该错误在listen()方法中发出。包括一个“仅针对您的情况”选项。

使用以下代码打印未捕获异常的堆栈跟踪

process.on('uncaughtException', function( err ) {
            console.error(err.stack);
 });

您可以通过在正在创建的服务器上处理错误事件来实现这一点。首先,获取
.createServer()
的结果

然后,您可以轻松地处理错误:

server.on('error', function (e) {
  // Handle your error here
  console.log(e);
});

这是最好的解决方案,因为它侦听的是正确的“服务器”范围,而不是整个流程。更好的解决方案。用于此的文档在哪里?我在文档中看到了
'clientError'
,但没有看到
'error'
:@GeoffreyHale
http.Server
extends
net.Server
。这是一种糟糕的方法,您可能会像疯了一样泄漏资源(),只需在此处添加process.exit(),就可以了
server.on('error', function (e) {
  // Handle your error here
  console.log(e);
});