Javascript Expressjs服务器地址主机不返回任何内容

Javascript Expressjs服务器地址主机不返回任何内容,javascript,node.js,express,Javascript,Node.js,Express,按照标准的ExpressJs hello word示例,我得到了大量“::” 为什么会发生这种情况 hello word示例: var server = app.listen(3000, function () { var host = server.address().address; var port = server.address().port; console.log('Example app listening at http://%s:%s', host, port)

按照标准的ExpressJs hello word示例,我得到了大量“::”

为什么会发生这种情况

hello word示例:

var server = app.listen(3000, function () {
  var host = server.address().address;
  var port = server.address().port;

  console.log('Example app listening at http://%s:%s', host, port);
});

我发现一个提示是在端口参数后添加“localhost”。它解决了当我只是看我的电脑,但它不会通过网络工作。我该怎么办

我尝试了这个示例,对主机名“::”有相同的输出,我做了以下更改作为解决方法:

 var server = app.listen(3000, 'localhost', function () {
     var host = server.address().address;
     var port = server.address().port;
     console.log('Example app listening at http://%s:%s', host, port);
});
输出:

示例应用程序正在侦听代码

var server = app.listen(3000, function () {
如果
listen
函数中没有地址参数,节点会将其绑定到任何地址,该地址与IPV4的地址
0.0.0
相关,并对应于中的
。而这个
IPv6
未指定的地址
0:0:0:0:0:0
,被减少为

运行
netstat-a后

 TCP    [::]:3000              CP-Q10001:0       LISTENING
我们知道节点服务器监听地址
,端口
3000


请参阅中使用的
express.js

如果省略主机名,则当IPv6可用时,服务器将接受任何IPv6地址(::)上的连接,否则将接受任何IPv4地址(0.0.0.0)上的连接


这会给你你想要的结果。您不需要包含“localhost”

var server = app.listen(3000, function () {
    var port = server.address().port;
    require('dns').lookup(require('os').hostname(), function (err, add, fam) {
        debug('Example app listening at http://%s:%s', add, port);
    })
});

你有没有从文档中尝试过这个@卢卡斯斯塔:是的,我有。我遇到了完全相同的问题。你已经找到解决这个问题的办法了吗?“我敢发誓几天前它工作得很好……”杰克抱歉很久没人接电话了!不,我还没有!是的,我也做了,但是网络上没有。您是否尝试使用另一台PC/smartphone/tablet访问机器IP?在我的示例中,我将localhost设置为地址,因此如果您需要将其用于网络,您是否可以尝试设置机器IP地址而不是localhost并尝试一下?我在来这里之前就已经这样做了。。。它工作得很好,但在过去expressJS会自动给我们网络地址,但为什么它会返回空白?它不应该是某种IP地址吗?@GeorgeMauer,结果是
http://:::3000
,而
IPV6
的IP地址,我想不是空的。过去,它可以很好地显示,但几天后,它停止了,再也没有显示:(@GeorgeMauer,node.js的
http.listen
doc解释
用于启用IPV6。@BrennoReal相关部分似乎是:
如果省略主机名,服务器将在IPV6可用时接受任何IPV6地址(::)或任何IPv4地址(0.0.0.0)上的连接否则。端口值为零将分配一个随机端口。
var server = app.listen(3000, function () {
    var port = server.address().port;
    require('dns').lookup(require('os').hostname(), function (err, add, fam) {
        debug('Example app listening at http://%s:%s', add, port);
    })
});