【问题标题】:node.js server get host name without reqnode.js 服务器无需请求即可获取主机名
【发布时间】:2015-11-10 05:09:59
【问题描述】:

目前我使用req.headers.host来确定服务器的主机名,在处理服务器收到的请求时有效。

但是如何在没有请求的情况下确定主机名(即没有req)?我特别想,当节点服务器首次创建并运行时,以及在收到任何请求之前。

我正在使用express 模块。

谢谢

【问题讨论】:

  • 如果没有请求,您实际上并不知道主机名。单个服务器可以服务多个主机名。
  • 我只有 Cloud 9 IDE 和 heroku 的低级经验,并且在这两者中(至少在我工作的级别上)你通过特定的 URL 访问节点服务器。因此,使用 C9 时,当您启动服务器时,它会显示“您的代码在 xxx.yyy.com 运行”,而使用 heroku 时,您会为您的服务器分配一个特定的 URL。那么,当我在 C9 和 heroku 上启动同一个服务器时,我如何知道它是在 C9 还是 heroku 上运行?我曾希望我可以通过检查主机名来做到这一点,就像收到请求一样。

标签: javascript node.js express


【解决方案1】:

你可以使用 os 模块和os.hostname()

https://nodejs.org/docs/latest/api/os.html#os_os_hostname

【讨论】:

  • 本地主机名通常与通过 HTTP 提供的主机名不同。
  • 每次在同一主机上重新启动服务器时主机名是否相同?
  • 这是返回机器名如何获取真实的主机名,即'localhost'?
  • @user3797053 是“真实”机器名。
猜你喜欢
  • 1970-01-01
  • 2015-05-08
  • 2011-11-22
  • 1970-01-01
  • 2013-06-02
  • 2013-11-20
  • 2022-01-15
  • 2011-12-10
  • 1970-01-01
相关资源
最近更新 更多