19

我是 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 ,这很有用,但能够理解如何捕获错误会很好在节点中。

4

4 回答 4

35

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

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

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

server.on('error', function (e) {
  // Handle your error here
  console.log(e);
});
于 2013-01-22T23:59:57.333 回答
5

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

process.on('uncaughtException', function( err ) {
            console.error(err.stack);
 });
于 2012-09-19T14:16:15.720 回答
3

错误在 listen() 方法中发出。API 文档包含一个仅适用于您的情况的示例。

于 2012-09-19T14:15:19.510 回答
1

您可以使用

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

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

于 2012-09-19T14:14:19.443 回答