2017-03-25 5 views
1

私はLinux上でノードjsを持つREST APIを開発しています。 このすべてがうまく動作するかどうか試して私の最初のサンプルコード:Linux nodejs rest service work localhost

'use strict'; 

var express = require("express"); 
var app = express(); 

var port = process.env.PORT || 8080 ; 

app.listen(port, "127.0.0.1", function(){ 
console.log("Express server is listening on port ", port); 
}); 

私はlocalhostを呼び出そうとしている:Linuxサーバに8080をし、正常に動作します。 私は外部IPによってこのポートを持つサーバーのtrhe IPを呼び出そうとすると、エクスプレスサーバーは応答しません。 これに関するお手伝いはありますか? おかげ

+1

expressとは関係のないファイアウォールの問題のような音です。あなたはlocaltunnelのようなツールを使用することができます。 https://github.com/localtunnel/localtunnelをあなたはlocalhostのみで聴いている – Ain

+0

... '「127.0.0.1」'。 –

+0

サーバー上でhttp:// hostname:8080を呼び出すと、それは機能しますか?あなたがリモート接続を取得できませんでしたし、これまでに与えられた答えは、それらの理由の1を解決 –

答えて

1

あなたがセットに「127.0.0.1」があるapp.listen()apiへのあなたの二番目のパラメータ、ホスト名。これにより、ノードは要求ドメインからのそのホスト名と一致する要求のみをリッスンします。

これはオプションのパラメータです。

おそらくapp.listen(port, callback)のAPI形式を試してみてください。

app.listen(port, function() { 
    console.log("Express server is listening on port ", port); 
}); 

app.get('/', function (req, res) { 
    res.send('Hello world!') 
}); 

それとも、あなたはあなたのサービスがすべてのホスト名に聞きたくない場合は、設定ファイルに[ホスト名]パラメータを移動することができます。

パラメータのデフォルトの動作の詳細については、server.listen()のドキュメントを参照してください。

1

は、このようにあなたのアプリはすべてのネットワークインターフェイス上だけでなく、ローカルホスト上でリッスンしてみてください。

app.listen(port, "0.0.0.0", function(){ 
    console.log("Express server is listening on port ", port); 
}); 
+0

私はちょうどしようとしているが、結果は同じ – APPGIS

+0

そのある1つの以上の理由があったかもしれないので、それはおそらく、その情報と質問を更新しない場合ワーキングコード、あなたのポートが公にアクセス可能でないかもしれない問題がある – Gaurav

関連する問題