もう技術選定や設計に悩まない!?全部入りフルスタックTypeScriptフレームワークAdonisJS - ルーティング&コントローラ編
AdonisJSは、Node.js向けのフルスタックフレームワークであり、バックエンドからフロントエンド、データベース管理までを一貫して開発できる環境を提供します。
この記事では、AdonisJS v6のインストール方法、ルーティングとコントローラの基礎について解説します。
1. AdonisJSとは?
AdonisJSは、モダンなWebアプリケーション開発に最適なフルスタックフレームワークです。以下の特徴を持っています。
- TypeScriptを標準サポート: 型安全な開発が可能
- MVCアーキテクチャ: コードの整理がしやすい
- 柔軟性のあるフロントエンド開発
- Lucid ORMによるデータベース管理
- 認証やバリデーション機能が充実
これにより、フロントエンドとバックエンドの統合がスムーズに行え、開発の生産性を大幅に向上させることができます。
2. AdonisJSのインストール
Node.jsのバージョン
AdonisJS v6を利用するには、Node.js 20以上が必要です。
プロジェクトの作成
以下のコマンドで新しいAdonisJSプロジェクトを作成できます。
npm init adonisjs@latest my-adonis-app
コマンドを実行すると、以下のようなプロンプトが表示されます。
-
Which starter kit would you like to use:
inertia
を選択します。 -
Which authentication guard you want to use:
session
を選択します。 -
Which database driver you want to use: 今回は
sqlite
を選択します。 -
Which frontend adapter you want to use with Inertia:
react
を選択します。 -
Do you want to setup server-side rendering with Inertia?:
No
を選択します。
このプロンプト終了後、Starter Kitのダウンロード、依存関係のインストール、その他セットアップ処理が実行されます。
開発サーバーの起動
cd my-adonis-app
npm run dev
これで、開発サーバーが http://localhost:3333
で起動します。
3. AdonisJSのディレクトリ構成
AdonisJSのプロジェクトを作成すると、以下のようなディレクトリ構成が生成されます。
Inertia Starter Kitの場合は、さらにinertia
ディレクトリが増えます。
my-adonis-app/
├── app/ # アプリケーションロジック(コントローラー、モデルなど)
│ ├── controllers/
│ ├── models/
│ └── ...
├── config/ # 設定ファイル
├── database/ # マイグレーションやシードファイル
│ ├── migrations/
│ └── seeders/
├── public/ # 静的ファイル(画像、CSS、JavaScriptなど)
├── resources/ # テンプレートやビュー
│ ├── views/
│ └── ...
├── start/ # アプリケーションの初期化スクリプト
│ ├── routes.ts # ルーティングを定義
│ └── ...
├── .env # 環境変数設定ファイル
└── adonisrc.ts # AdonisJSの設定ファイル
4. ルーティングとコントローラーの作成
ルーティングの追加
AdonisJSでは、ルーティングを start/routes.ts
に定義します。ルーティングとは、特定のURLに対する処理を決めるものです。以下は基本的なルーティングの例です。
import router from '@adonisjs/core/services/router';
router.get('/', () => {
return 'ホームページからこんにちは世界。';
});
router.get('/about', () => {
return 'これはaboutページです。';
});
router.get('/posts/:id', ({ params }) => {
return `この投稿のIDは${params.id}です。`;
});
コントローラの作成
コントローラは、リクエストを処理し、適切なレスポンスを返す役割を持ちます。app/controllers/ ディレクトリ内に作成され、ルーティングと連携して動作します。
以下のコマンドでコントローラを作成できます。
node ace make:controller HelloWorld -s
app/controllers/hello_world_controller.ts
が作成されます。
簡単なjsonレスポンスを返す処理を書きます。
import type { HttpContext } from '@adonisjs/core/http';
export default class HelloWorldController {
public async index({ response }: HttpContext) {
return response.json({ message: 'Hello from Controller!' });
}
}
start/routes.ts
にルートを追加して、コントローラを動作させます。
const HelloWorldController = () => import('#controllers/hello_world_controller')
router.get('hello', [HelloWorldController, 'index']);
これで、http://localhost:3333/hello
にアクセスすると、コントローラからのレスポンスが表示されます。
5. まとめ
この記事では、AdonisJS v6の基本的なセットアップ方法について解説しました。
次回は、データベースの操作について解説していきます!
Discussion