Meteor:如何获取主机名,服务器端

fif*_*nce 17 node.js meteor

在客户端,我可以window.location.hostname用来获取主机名.如何在服务器上获得相同的内容?我需要这个后面的Apache代理工作,遗憾的是Meteor.absoluteUrl()给了我localhost:3000.我也希望它适用于不同的域,我想要一个Meteor应用程序,为不同的域提供不同的结果.

这个问题有点相关:在node.js Express中获取当前请求的主机名

ims*_*vko 31

Meteor.absoluteUrl()鉴于你的ROOT_URLenv变量设置正确.

请参阅以下文档:http://docs.meteor.com/#meteor_absoluteurl.

Meteor不知道它所在的代理的面向外部的地址,并且访问该代理的(虚拟)域必须转发到Meteor应用程序,以便它能够满足您的要求.我认为目前不支持此功能.


chm*_*mac 9

根据这个,您现在可以通过访问以下内容获取Host标头Meteor.publish()Meteor.methods()调用:

this.connection.httpHeaders.host
Run Code Online (Sandbox Code Playgroud)

在应用程序的其他地方,可能很难确定Host用于连接的标头.


fif*_*nce 7

如果您需要服务器的主机名,/etc/hostname例如:

随着陨石:

$ mrt add npm

在您的服务器代码中:

os = Npm.require('os')
hostname = os.hostname()
Run Code Online (Sandbox Code Playgroud)

这与传入请求中提供的Host头没有关联.

用以下评论中的chmac的一些单词更新答案

  • 这为您提供了服务器的主机名,例如在`/ etc/hostname`中配置(正是我想要的!),但它与传入请求中提供的Host头没有连接.不幸的是,鉴于Meteor的架构,主机头可能难以提取. (2认同)