Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么在app.listen(端口,主机)中设置主机时app.address()为空;_Javascript_Node.js_Express - Fatal编程技术网

Javascript 为什么在app.listen(端口,主机)中设置主机时app.address()为空;

Javascript 为什么在app.listen(端口,主机)中设置主机时app.address()为空;,javascript,node.js,express,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'); con

当省略下面的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:无法读取null的属性“port”

节点v0.6.5

我安装了express 2.5.9版-返回我已安装的2.5.8版-不确定这是怎么回事。

因为app.address()是从节点的HTTP模块继承的。如果你仔细看,上面写着:

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

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