0

API Doc nodejsで説明されている方法で EADDRINUSE を処理したいのですが、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);

サーバーを2回起動すると、
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 に答える