【nodejs活用】nexeでポータブルなExpress.jsサーバーを手軽に持ち歩く〜Linux編


※ 当ページには【広告/PR】を含む場合があります。
2022/04/28
2022/09/15
【nodejs活用】nexeでポータブルなExpress.jsサーバーを手軽に持ち歩く〜Windows編

nexeでスタンドアローンなExpressサーバを立てるコマンドを作成する際のメモです。

なおこの記事で、nexeアプリのビルド環境の導入方法などには触れていませんので、より細かいセットアップの情報は以前の記事の内容でご確認ください。

合同会社タコスキングダム|蛸壺の技術ブログ
【簡単nodejsアプリ開発】NexeでCLI版スネークゲームを作ってみる・前編

nodejsのユーティリティ・nexeを使って、簡単なCLIコンソールゲームのスネークゲームを作ってみます。

nexeとExpressを組み合わせることで、nodejsをインストールしていない環境でも、コマンド一つで簡易的なWebサーバーに仕上げられるので、ローカルのテスト環境ツールにもってこいです。

早速以降ではnexeとExpressを使った最軽量なモックWEBサーバーツール・
「Nexe-Expressサーバー」を実装してみます。

なお、今回は
「LinuxでビルドしてLinuxで動くNexeアプリ」の作成手順を説明していきます。

別パターンとして、
「LinuxでビルドしてWindowsで動くNexeアプリ」は次回以降で特集してみる予定です。


合同会社タコスキングダム|蛸壺の技術ブログ【効果的学習法レポート】nodejsをこれから学びたい人のためのオススメ書籍&教材特集

Express.jsのtypescriptビルドとnexeアプリビルド

NodeプロジェクトにnexeExpress.jsともにインストールされていて、Typescriptのビルド環境が正常に動作しているものとします。

アプリのメインコード・
index.tsを以下のような内容にします。

            
            import express from "express";

const endpoint = 'http://localhost:3000';
console.log(`Nexe-Express server is now running at ${endpoint}!`);

const app = express();
app.get('/', (req, res) => {
    res.send('Hello, local client!');
});
app.listen(3000, () => {});
        
これをtscでTypescriptビルドして、出力されたdist/index.jsを更にnexeアプリビルドに掛けます。

            
            $ tsc
$ nexe dist/index.js --target=linux-x64-14.15.3
        
ここでのターゲットはLinuxOS x64向けです。

ちなみに出来上がったバイナリのサイズは、

            
            $ du -h index
72M     index
        
となってnodejs & Expressがこのサイズに詰まっていると考えれば、かなりコンパクトに感じます。


合同会社タコスキングダム|蛸壺の技術ブログ【効果的学習法レポート】nodejsをこれから学びたい人のためのオススメ書籍&教材特集

動作テスト〜CurlでNexe-Expressサーバーにアクセス

では仕上がった実行バイナリを起動させてみましょう。

            
            $ ./index
Nexe-Express server is now running at http://localhost:3000!
        
この状態で、別ターミナルを起動し、このエンドポイントhttp://localhost:3000にGETをリクエストしてみます。

            
            $ curl -XGET http://localhost:3000
Hello, local client!
        
きちんとレスポンスが得られれば、ポータブルなアプリ兼HTTPサーバーとして機能していると思います。めでたしめでたし。

記事を書いた人

記事の担当:taconocat

ナンデモ系エンジニア

主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。

合同会社タコスキングダム|蛸壺の技術ブログ【効果的学習法レポート】nodejsをこれから学びたい人のためのオススメ書籍&教材特集