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

时间:2012-09-19 14:06:50

标签: 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);

这就是问题 - 如何在调用createServer时看到抛出的异常(或抛出的事件)?我尝试过try / catch但它似乎不起作用。在模块的API中,我无法找到任何引用。我问,因为我不小心在一个端口上启动了一个服务器(8888),我得到的错误(在命令行中)是错误:EDDRINUSE,这很有用但是能够理解如何捕获错误会很好在节点中。

4 个答案:

答案 0 :(得分:25)

您可以通过处理正在创建的服务器上的错误事件来执行此操作。首先,获得.createServer()的结果。

var server = http.createServer(function(request, response) {

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

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

答案 1 :(得分:3)

在listen()方法中发出错误。 API documentation仅包含example,仅供您参与。

答案 2 :(得分:3)

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

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

答案 3 :(得分:0)

您可以使用

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

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