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

当下面的127.0.0.1被省略时,app.address()不为空,但是当一个主机被设置时,它是空的。

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

我安装了快速版本2.5.9 – 其返回,我已经安装了2.5.8 – 不知道这是什么。

因为app.address()是从Node的HTTP模块inheritance的。 如果你看看那里的文档写道:

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

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