在app.listen(PORT,HOST)中设置HOST时,app.address()如何为null;

Ant*_*ony 7 javascript node.js express

当省略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);
Run Code Online (Sandbox Code Playgroud)

错误输出: TypeError: Cannot read property 'port' of null

节点v0.6.5

我安装了快速版本2.5.9 - 它返回我已经安装了2.5.8 - 不知道那是什么.

Mus*_*afa 5

因为,app.address()是从Node的HTTP模块继承的。如果您查看文档,则会写道:

返回操作系统报告的服务器的绑定地址和端口。

因此,我假设,当您请求具有IP的端口时,操作系统不会将其报告给您,因此此方法返回null。但是,如果不需要,则可能需要计算机的IP或地址,因为每台计算机不必都是“ localhost”,所以它们可以具有不同的域,从而只允许将套接字绑定到该域。