0

我想处理 EADDRINUSE 它是如何在API Doc nodejs中描述的,但是 connect/express 没有调用错误事件处理程序。

这是一个例子:

var connect = require('connect');
var app = connect();

app.use(function(req, res){
    res.end('hello world\n');
});

app.on( 'error' , function(e) {
    console.log('error event handler called');
});

app.listen(3000);

如果我启动服务器两次,我得到了
throw arguments[1]; // Unhandled 'error' event

我用connect 2.7.2对其进行了测试。

4

1 回答 1

1

从 2.x 版开始,connect()不再是 a 的构造函数net.Server。'net.Server' 将由函数返回listen(...)

因此,要使示例正常工作,它应该如下所示:

var connect = require('connect');
var app = connect();

app.use(function(req, res){
    res.end('hello world\n');
});

app.listen(3000).on( 'error' , function(e) {
    console.log('error event handler called');
});

另请参阅连接问题 #749

于 2013-02-15T07:30:00.450 回答