7

以下の 127.0.0.1 を省略した場合 app.address() は null にはなりませんが、ホストが設定されている場合は null になります。

var express = require('express'),
    app = express.createServer();

app.use(express.logger());

app.get('/', function(req, res){
    res.send('Hello World');
});

app.listen(3000, '127.0.0.1');
console.log(app.address());
console.log('Express server started on port %s', app.address().port);

エラー出力:TypeError: Cannot read property 'port' of null

ノード v0.6.5

Express バージョン 2.5.9 をインストールしました - 2.5.8 をインストールしたことが返ってきました - それが何なのかわかりません。

4

1 に答える 1

5

app.address() は Node の HTTP モジュールから継承されているためです。ドキュメントを見ると、次のように書かれています。

オペレーティング システムによって報告されたサーバーのバインドされたアドレスとポートを返します。

したがって、IPでポートを要求すると、OSはそれを報告しないため、このメソッドはnullを返すと思います。ただし、そうでない場合は、コンピューターの IP またはアドレスが必要になる場合があります。すべてのコンピューターが「localhost」である必要はなく、異なるドメインを持つことができるため、ソケットをそのドメインにのみバインドできます。

于 2012-05-24T17:03:30.147 に答える