Javascript Expressjs服务器地址主机不返回任何内容
按照标准的ExpressJs hello word示例,我得到了大量“::” 为什么会发生这种情况 hello word示例: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)
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);
})
});