はじめに
2023年3月31日にngrokからニュースレター(メール)を受信しました。
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へブラウザでアクセスするとエラーが表示されました。
アクセストークンが設定されていないという内容です。
ドキュメントには記載されていませんが、コードの内容を確認して、環境変数(NGROK_AUTHTOKEN)にアクセストークンを設定する必要があります。
ngrok.ioのダッシュボードへアクセスして、アクセストークンの情報を取得します。
環境変数(NGROK_AUTHTOKEN)を設定して、再度nodeプログラムを実行します。
$ NGROK_AUTHTOKEN=XXXXXXXXXXXXXXXXXXXX node app.js
$ tunnel at: https://f832-2400-2410-d461-3100-7833-cafd-f216-5fb.jp.ngrok.io
無事にアクセスできました。