Node.jsでサーバーを立ててngrokで外部公開
はじめに
Node.jsでサーバーを立てて、htmlファイルを読み込むとき、ローカルホストではなく外部からURLを開くと自分のPCのIPアドレスがバレバレになってしまいます。今回は、それを防ぐために、ngrokというサービスを使った話をします。
Node.jsでサーバを立てる
同じフォルダー内にserver.js
とindex.html
を作ります。
sever.js
var http = require('http'), port = 3000,//ポート番号 ipadress = 'localhost',//IPアドレス fs = require('fs'); var server = http.createServer(); server.on('request', function (req, res) { fs.readFile(__dirname + '/index.html', 'utf-8', function (err, data) { if (err) { res.writeHead(404, { 'Content-Type': 'text/plain' }); res.write("not found!"); return res.end(); } res.writeHead(200, { 'Content-Type': 'text/html' }); res.write(data); res.end(); }); }); server.listen(port, ipadress); console.log("server listening ...");
index.html
<!DOCTYPE html> <html> <head> </head> <body> Hello,world! </body> </html>
そうしたらコマンドラインを開いて、そのフォルダー内でnode server
とコマンドを打ちます。
そして、ブラウザでhttp://localhost:3000/
を開いてください。下の画像のようになったら成功です。
ngrokで外部に公開
ngrokをインストールするとngrok
コマンドが使えるようになります(ngrokのインストール方法)。
Node.jsでサーバを立てたら、以下のコマンドを打ってください。
ngrok http 3000
ここでの3000
はserver.js
で指定したポート番号です。
そうすると以下のような結果が返ってきます。
上の画像の赤線を引いたURLをブラウザで開いてください。
そうするとローカル環境のサイトであるindex.html
が外部で公開できていることが分かります。