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