7

省略下面的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

我安装了 express 版本 2.5.9 - 它返回我安装了 2.5.8 - 不知道那是什么。

4

1 回答 1

5

因为,app.address() 继承自 Node 的 HTTP 模块。如果您查看文档,其中写道:

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

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

于 2012-05-24T17:03:30.147 回答