ElysiaJSに入門してみる
ElysiaJSについての個人的なメモ。
- Bunのフレームワーク
- 公式サイト
- Expressよりも21倍速い
- 人間工学に基づいた人間のためのフレームワーク
- End-to-Endで型セーフである
Bunのインストール
まだBunをインストールしたことがなかったため、公式サイトを参照し、下記のコマンドを実行します。
brew install oven-sh/bun/bun
2024年4月7日時点では、v1.1.2がインストールされました。
ElysiaJSのインストール
bun create elysia アプリ名
アプリの起動
# To get started, run:
cd アプリ名
bun run src/index.ts
インストール時に表示されたメッセージに従って下記を実行します。
bun run src/index.ts
上記では、メッセージに従いましたが、bun dev
でも起動できます。
localhost:3000 へアクセスし、「Hello Elysia」と表示されることを確認します。
index.tsを覗いてみる
import { Elysia } from "elysia";
const app = new Elysia().get("/", () => "Hello Elysia").listen(3000);
console.log(
`🦊 Elysia is running at ${app.server?.hostname}:${app.server?.port}`
);
コンソールに「🦊 Elysia is running at localhost:3000」が表示されることを確認します。
マニュアルのインストール
bun add elysia
dependencyにelysiaが追加されるため、npmスクリプトを下記のように変更します。
"scripts": {
"dev": "bun run --watch src/index.ts",
"build": "bun build src/index.ts",
"start": "NODE_ENV=production bun src/index.ts",
"test": "bun test"
},
testコマンドは、既に存在していため、追加ではなく更新しました。
- devコマンドは、開発モードで起動し、オートリロードが効く
- buildコマンドは、プロダクションビルドを実行する
- startコマンドは、プロダクションサーバーで起動する
- testコマンドは、テストを実行してくれる
公式おすすめのディレクトリ構成
elysia-app
├── src
│ ├── index.ts // エントリーポイント
│ ├── setup.ts // [wip]調べる
│ ├── controllers // [wip]調べる
│ ├── libs // 共通処理のファイルを格納する
│ ├── models // [wip]調べる
│ └── types // 型情報を記載したファイルを格納する
├── test // テストファイルを格納する
├── bun.lockb
├── node_modules
├── package.json
└── tsconfig.json