LoginSignup
5
2

More than 1 year has passed since last update.

Node.jsからngrokを使ってみた。(JavaScriptライブラリのサポート)

Last updated at Posted at 2023-03-31

はじめに

2023年3月31日にngrokからニュースレター(メール)を受信しました。

スクリーンショット 2023-03-31 9.37.48.png

Goプログラム、Rustプログラムからngrokを使えるようになったようです。

GitHubを除いたところ、Node.js版もリリースされていたので試してみました。

手順

npmモジュールをインストールします。

$ npm install @ngrok/ngrok

サンプルコードを試します。

app.js
const http = require('http');
http.createServer(
  function(req,res){res.writeHead(200);
  res.write('Hello');
  res.end();
} ).listen(8081); 

var ngrok = require('@ngrok/ngrok');
new ngrok.NgrokSessionBuilder().authtokenFromEnv().connect().then((session) => {
  session.httpEndpoint().listen().then((tunnel) => {
    console.log('tunnel at: ' + tunnel.url());
    tunnel.forwardTcp('localhost:8081');
  })
});

nodeプログラムを実行します。

$ node app.js 
$ tunnel at: https://2005-2400-2410-d461-3100-7833-cafd-f216-5fb.jp.ngrok.io

表示されたURLへブラウザでアクセスするとエラーが表示されました。

スクリーンショット 2023-03-31 9.46.39.png

アクセストークンが設定されていないという内容です。
ドキュメントには記載されていませんが、コードの内容を確認して、環境変数(NGROK_AUTHTOKEN)にアクセストークンを設定する必要があります。

ngrok.ioのダッシュボードへアクセスして、アクセストークンの情報を取得します。

token_1.png

環境変数(NGROK_AUTHTOKEN)を設定して、再度nodeプログラムを実行します。

$ NGROK_AUTHTOKEN=XXXXXXXXXXXXXXXXXXXX node app.js 
$ tunnel at: https://f832-2400-2410-d461-3100-7833-cafd-f216-5fb.jp.ngrok.io

無事にアクセスできました。

スクリーンショット 2023-03-31 9.37.03.png

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2