2017-12-13 4 views
0

私はExpressJSを使用してデモアプリケーションを作成しました。NodeJS - 外部からのサーバーアクセス/ LAN IPが失敗しました[SOLVED]

システムのPOSTMANを介してAPIにアクセスすると正常に動作します。しかし、モバイルとサーバーの両方のシステムが同じWi-Fiに接続されている私のモバイルブラウザでは、同じものにアクセスすることはできません。

マイserver.jsコード:

const express = require('express'); 
const bodyParser = require('body-parser'); 
const app = express(); 

app.listen(3000, "0.0.0.0", function() { 
    console.log("Listening on Port 3000"); 
}); 

app.get('/server/identify', function(req, res) { 
    console.log(req.body); 
    var data = { 
     "meta": { 
      "status": "success", 
      "message": "Server is running" 
     } 
    }; 
    res.json(data); 
}); 

答えて

1

あなたは、あなたのローカルネットワーク上のポート3000を公開し、それがローカルネットワークのIPアドレスです使ってマシンにアクセスする必要があります。マシン上でポートが開いていない限り、誰もアクセスできません。

ngrokのようなものを見てください。これは、あなたにポートを公開し、インターネットに接続している限り誰でもリンクにアクセスできるようにする必要があります。これは、アプリケーションをビルドする前に、アプリケーションを構築し、マシンとモバイルで迅速にテストするのに役立ちます。

+0

あなたは本当に私の一日を救った。 Ngrokは最高です。 :) –

+1

@NaveenKumarV localtunnelと呼ばれる同様のノードベースの変種 - https://localtunnel.github.io/www/があります。これは、時にはノードプロジェクトだけでなく、プログラム的なフックを持つ場合もあります。私は複数のプロジェクトにまたがって便利で、私のプロジェクトをそれに結びつけないように強制するので、ngrokを好む。 –

0

私はこの解決に続くステップ:ngrok.exe(インストールする必要はありません)

(In command prompt) 
>> node server.js 
Server running in port 3000 

>> ngrok http 3000 

ngrok by @inconshreveable 

Session Status    online 
Version      2.2.8 
Region      United States (us) 
Web Interface     http://127.0.0.1:4040 
Forwarding     http://92a8b6b1.ngrok.io -> localhost:3000 
Forwarding     https://92a8b6b1.ngrok.io -> localhost:3000 

Connections     ttl  opn  rt1  rt5  p50  p90 
           0  0  0.00 0.00 0.00 0.00 
でを(おかげでブラックバーンを@Elliotする)

Windows Firewall > Advanced Settings > Inbound rules > New Rule > 

Port > Provide port number (in my case 3000) > Select "Allow the Connection" > 

Select all (Domain, private and public) > Provide Name and Description > FINISH 

(In command prompt) 
>> node server.js 
Server running in port 3000 

[オプション]

+0

ngrokを使用している場合はポート3000を公開しないことをお勧めします.ngrokは使用するには少し安全ですし、ポートを手動で公開する必要はありません。 –

+1

私のnodejsアプリケーションはデフォルトでポート3000を使います。ですから、デフォルトポート80でrandom.ngrok.ioから転送されたときにlocalhostでポート3000を使用するようにngrokに指示するには、 'ngrok http 3000'を実行する必要がありました。今日は素敵なツール。 :) –

関連する問題