2012-01-21 9 views
3

Node.JSを実行しています&ローカルホスト(127.0.0.1)でExpressアプリケーションを実行していて、要求を行わずに現在のホスト(ドメイン)を見つける必要がありますサーバーの作成時に開始されます)。サーバはこのようNode.JSとExpress:要求なしでアプリケーションホストを取得する

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

作成され、このことにより、返されたホストが0.0.0.0あるしかし、今、私は解決策

app.address(); 

以下のことがわかりました、ポートはので、私は、私は何とかホストを指定する必要があります推測が正しい返されますサーバーの開始時に正しいホストを取得するにはどうしたらいいですか?私は

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

を試みたが、それは動作しません:(

+0

あなたが得ることができない理由を得ることができますあなたが本当にそれなしでそれを知ることができないということです。あなたのホストは、Nginxのようなリバースプロキシによって変更することができます。プロダクション環境では、これらのリバースプロキシの背後に非常に多くのノードが存在するため、非常に不正確な機能になります。したがって、そこには存在しません。 –

+0

私は同じ問題に直面しています。私はcsvをエクスポートし、リクエスタの電子メールIDへのリンクをメールする 'node-cron'モジュールを使って' cron 'を実行しています。しかし、私は環境に基づいて動作するリンクを作成することができません。私はそれをハードコードしたくない。 –

答えて

2

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

os.hostname()

は、オペレーティングシステムのホスト名を返します。

あなたが探しているように見えます。

+2

ありがとう、しかし、それは私が意味しているものではありません。私はwww.foobar.comやIPアドレス(例えばlocalhostの場合は127.0.0.1)のようなホスト(ドメイン名)を取得しようとしています – ladar

+0

@ladarどうして私の提案が間違っていますか? – thejh

+0

多分私は何かが不足しているかもしれませんが、あなたの提案はlinux(またはWindowsのコンピュータ名)で 'uname -n'と同じものを返します。しかし、アプリケーションはlocalhost(127.0.0.1)上で動作していますので、127.0.0.1を取得したいとします。 – ladar

0

http://whatismyip.org/

あなたがそれを望む理由を変更することができます。あなたが望むことをするために実際のcronジョブの代わりに使用できるモジュールがいくつかあります。

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

+0

私は実際にこのモジュールを使用していますが、トリガする関数は正しく動作するためにホスト名を知る必要があります。私は混乱しています。あなたがホストを取得できない場合、なぜ 'app.address()'がありますか? – ladar

0

古い質問が、助けを求めてここに着陸誰もが、これを試してみてください。

app.get('ip') 

あなたが同じようにポート

app.get('port') 
関連する問題