node.js 服务器无需请求即可获取主机名
Posted
技术标签:
【中文标题】node.js 服务器无需请求即可获取主机名【英文标题】:node.js server get host name without req 【发布时间】:2015-11-10 05:09:59 【问题描述】:目前我使用req.headers.host
来确定服务器的主机名,在处理服务器收到的请求时有效。
但是如何在没有请求的情况下确定主机名(即没有req
)?我特别想,当节点服务器首次创建并运行时,以及在收到任何请求之前。
我正在使用express
模块。
谢谢
【问题讨论】:
***.com/a/9399767/2182767 - 检查这个答案 如果没有请求,您实际上并不知道主机名。单个服务器可以服务多个主机名。 我只有 Cloud 9 IDE 和 heroku 的低级经验,并且在这两者中(至少在我工作的级别上)你通过特定的 URL 访问节点服务器。因此,使用 C9 时,当您启动服务器时,它会显示“您的代码在 xxx.yyy.com 运行”,而使用 heroku 时,您会为您的服务器分配一个特定的 URL。那么,当我在 C9 和 heroku 上启动同一个服务器时,我如何知道它是在 C9 还是 heroku 上运行?我曾希望我可以通过检查主机名来做到这一点,就像收到请求一样。 【参考方案1】:你可以使用 os 模块和os.hostname()
https://nodejs.org/docs/latest/api/os.html#os_os_hostname
【讨论】:
本地主机名通常与通过 HTTP 提供的主机名不同。 每次在同一主机上重新启动服务器时主机名是否相同? 这是返回机器名如何获取真实的主机名,即'localhost'? @user3797053 是“真实”机器名。以上是关于node.js 服务器无需请求即可获取主机名的主要内容,如果未能解决你的问题,请参考以下文章
node.js + mysql + ejs 数据插入后无需重新加载页面即可更新屏幕信息
Node.js - 在 Amazon EC2 上获取主机 IP 地址