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 数据插入后无需重新加载页面即可更新屏幕信息

HTTP协议三次握手与四次挥手-node.js初级

Node.js - 在 Amazon EC2 上获取主机 IP 地址

如何获取 ORDS RESTful 服务的主机名和请求标头?

在 Flask 中获取没有端口的主机名

保持生成过程中的 Node.js 结果有序