DenoのOakフレームワークの環境を構築する方法
概要
Deno ベースの Web フレームワークである Oak の様々な環境構築方法について解説します。
本記事では、以下3通りの方法で環境構築をする方法を紹介します。
- コアモジュールで環境構築する方法
- Dockerで環境構築する方法
ここでは、以下バージョンを使用した、Oakの環境を構築する方法を説明します。
Oak v8.0.0
Deno v1.16.0
また、今回作成するコードは全て、以下に掲載しています。 https://github.com/wiblok/Deno-Oak
※ OakはDenoで動作します。Denoがインストールされていない場合は、公式ウェブサイトからダウンロードしてインストールしてください。
Deno
コアモジュールで環境構築する方法
この方法では、Oak のコアモジュールを Import して使用します。 以下の手順に従って実行してください。
Oak単体で環境を構築するには、以下の前提条件を満たす必要があります
プロジェクトディレクトリの作成
まず、Oakプロジェクトを作成するために新しいディレクトリを作成します。コマンドラインで以下のコマンドを実行してください
mkdir oak-core-project
プロジェクトディレクトリへの移動
プロジェクトディレクトリに移動します。以下のコマンドを実行してください:
cd oak-core-project
移動後、プロジェクトのルートディレクトリに移動します。
アプリケーションの作成
Oakアプリケーションを作成します。プロジェクトディレクトリ内に新しいファイル(例: app.ts
)を作成し、以下のコードを追加してください
app.ts
import { Application } from "https://deno.land/x/oak@v8.0.0/mod.ts";
const app = new Application();
app.use((ctx) => {
ctx.response.body = "Hello, Oak!";
});
await app.listen({ port: 8000 });
上記の例では、Oakアプリケーションの基本的な構造を示しています。中間処理機能を使用してルートパスに対するハンドラーを定義し、レスポン
スとしてHello, Oak!
を返します。
最終的に以下のようなディレクトリ構造になります。
oak-core-project
├── app.ts
サーバーの起動
最後に、Oakサーバーを起動します。以下のコマンドを実行してください
deno run --allow-net app.ts
サーバーが正常に起動すると、コンソールに「サーバーがポート8000で起動しました」と表示されます。 ブラウザでhttp://localhost:8000にアクセスして、Oakアプリケーションが正常に動作していることを確認してください。
Dockerで環境構築する方法
DenoにおいてもDockerを使用して環境を構築することができます。
まず、Dockerをインストールしてください。公式のDockerウェブサイトから、対応するオペレーティングシステムに合わせたDockerのインストーラーをダウンロードし、インストールを行ってください。
プロジェクトディレクトリの作成
まず、Denoプロジェクトを作成するために新しいディレクトリを作成します。コマンドラインで以下のコマンドを実行してください:
mkdir deno-docker-project
プロジェクトディレクトリへの移動
作成したプロジェクトディレクトリに移動します。以下のコマンドを実行してください
cd deno-docker-project
DockerFileの作成
# Use the official Deno Docker image as the base image
FROM denoland/deno:1.14.0
# Set the working directory inside the container
WORKDIR /app
# Copy the application files to the container
COPY . .
# Allow network access for the Deno application
ENV DENO_FLAGS="--allow-net=0.0.0.0:3000"
# Specify the command to run the Deno application with Oak
CMD ["deno", "run", "--unstable", "--allow-net", "app.ts"]
アプリケーションの作成
Denoアプリケーションを作成します。プロジェクトディレクトリ内に新しいファイル(例: app.ts
)を作成し、以下のコードを追加してください:
app.ts
import { Application } from "https://deno.land/x/oak@v8.0.0/mod.ts";
const app = new Application();
app.use((ctx) => {
ctx.response.body = "Hello, Oak!";
});
await app.listen({ port: 3000 });
上記の例では、DenoとOakを使用してアプリケーションの基本的な構造を示しています。Router
を使用してルートパスに対するハンドラーを定義し、レスポンスとしてHello, Deno!
を返します。
最終的に以下のようなディレクトリ構造になります。
oak-core-project
├── app.ts
|── Dockerfile
Dockerイメージのビルド
以下のコマンドを使用して、Dockerイメージをビルドします:
docker build -t deno-docker-project .
Dockerコンテナの実行
ビルドしたDockerイメージからDockerコンテナを実行します:
docker run -p 3000:3000 -d deno-docker-project
これにより、DenoアプリケーションがDockerコンテナ内で実行され、ホストのポート3000にマッピングされます。ブラウザやAPIテストツールなどから http://localhost:3000 にアクセスすることでDenoアプリケーションにアクセスできます。
以上が、Dockerを使用してDenoアプリケーションを環境構築する手順です。Dockerを活用することで、環境構築の手間を減らし、開発プロセスをスムーズにすることができます。注意: ホストのファイアウォールやネットワーク設定によっては、ポート3000へのアクセスが制限されている場合があります。必要に応じて、ファイアウォールやネットワーク設定を調整してください。