Node.js server.address()。address returns ::

如果我没有记错的话,前几天用来显示“localhost”。 我不知道是什么改变了server.address()。地址返回双冒号(::)代替。 我在这里读到它返回一个IPv6地址(::),如果它可用但它在我的PC上被禁用。 https://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback

正如文件所说,

开始接受指定端口和主机名的连接。 如果省略主机名,则服务器将接受任何IPv6地址(::)上的连接,当IPv6可用时,或者任何IPv4地址(0.0.0.0)。 端口值为零将分配一个随机端口。

因此,下面的代码将打印running at http://:::3456

 var express = require('express'); var app = express(); var server = app.listen(3456, function () { var host = server.address().address; var port = server.address().port; console.log('running at http://' + host + ':' + port) }); 

但是,如果你添加一个明确的主机名:

 var server = app.listen(3456, "127.0.0.1", function () { 

它会打印你想看到的: running at http://127.0.0.1:3456

你也可以ant使用这个答案中指出的一些IP库

最好的问候,亚历山大