首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学习节点表示,为什么控制台不输出'localhost'?

学习节点表示,为什么控制台不输出'localhost'?
EN

Stack Overflow用户
提问于 2016-07-11 14:44:45
回答 2查看 399关注 0票数 2

我正在学习使用表达式和节点在一般情况下,我意识到我可能错过了许多基础知识。下面是启动服务器以提供静态文件的代码,据我所知,控制台应该在启动时输出服务器地址和端口号。

代码语言:javascript
复制
var express = require('express');
var app = express();

app.use(express.static('resources'));
app.use(express.static(__dirname));

app.get('/', function (req, res) {
   res.sendFile( __dirname + "/" + "index.html" );
})

var server = app.listen(3000, function () {

  var host = server.address().address
  var port = server.address().port

  console.log("Server listening at http://%s:%s", host, port)

})

我希望看到‘服务器监听在http://localhost:3000’,但我却得到:‘服务器侦听 http://:::3000

有谁能解释一下这是什么意思吗?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-11 14:55:17

请参阅关于net.Server::address()的文档。

它可能没有提到localhost,因为您没有指定您正在监听的地址。

默认情况下,不存在特定地址,因为无论发送到哪个地址,它都将接受端口上的传入请求。

它可以接受的各种地址的例子有:localhost127.0.0.1192.168.1.72,或者如果您通过网络转发服务器,则可能是您的全局IP地址。如果您显式指定一个地址,它将拒绝来自所有其他地址的传入请求。

票数 2
EN

Stack Overflow用户

发布于 2016-07-11 15:00:14

听起来像是异步执行代码的危险。您正在定义主机和端口,并立即在控制台日志语句中调用它们。NodeJS在初始化之前正在执行log语句。尝试在app.listen函数之外打印日志语句。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38309843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档