Node.JS和Express:无需请求即可获取应用程序主机

时间:2012-01-21 12:52:32

标签: node.js express

我已经运行了Node.JS&在localhost(127.0.0.1)上快速应用程序,我需要找出当前主机(域)而不发出请求(对于在创建服务器时启动的cron作业)。服务器以这种方式创建

   app = express.createServer();
   app.listen(PORT);   

现在我找到了以下解决方案

   app.address();

但是由此返回的主机是0.0.0.0,端口返回正确所以我想我需要在服务器启动时以某种方式指定主机。如何强制它获得正确的主机?我试过了

  app = express.createServer({host: '127.0.0.1'});

但这不起作用:(

4 个答案:

答案 0 :(得分:2)

http://nodejs.org/docs/latest/api/os.html#os.hostname

  

os.hostname()

     

返回操作系统的主机名。

看起来它可能就是你要找的东西。

答案 1 :(得分:0)

你不能。您必须向http://whatismyip.org/

之类的请求发出请求

但你想要它的原因可以改变。有一些模块可以用来代替实际的cron作业来做你想做的事。

https://github.com/ncb000gt/node-cron

答案 2 :(得分:0)

老问题,但是有人在这里寻找帮助,试试这个:

app.get('ip')

您可以获得相同的端口

app.get('port')

答案 3 :(得分:0)

主机可能会通过多个IP到达,您可以在下面的文章Get local IP address in node.js

中找到如何获取主机的好例子