Fastifyの環境をコアモジュールとCLIとDockerでそれぞれ構築する方法

Fastifyの環境を構築する方法を紹介します。コードもGit Hubに掲載するので参考にしてください。

概要

Node.js ベースの Web フレームワークである Fastify の様々な環境構築方法について解説します。

本記事では、以下3通りの方法で環境構築をする方法を紹介します。


  1. Fastifyのコアモジュールで環境構築する方法
  2. Fastify CLIを使用して、環境構築する方法
  3. Dockerを使用して、環境構築する方法

ここでは、以下バージョンを使用した、Fastifyの環境を構築する方法を説明します。

Fastify v4.0.0
nodejs v19.7.0

また、今回作成するコードは全て、以下に掲載しています。 https://github.com/wiblok/Fastify

※ FastifyはNode.jsで動作します。Node.jsがインストールされていない場合は、公式ウェブサイトからダウンロードしてインストールしてください。
node.js

コアモジュールを使った環境構築方法

この方法では、Fastify のコアモジュールを Require して使用します。 以下の手順に従って実行してください。

Fastify単体で環境を構築するには、以下の前提条件を満たす必要があります

プロジェクトディレクトリの作成

まず、Fastifyプロジェクトを作成するために新しいディレクトリを作成します。コマンドラインで以下のコマンドを実行してください

mkdir fastify-core-project

プロジェクトディレクトリへの移動

プロジェクトディレクトリに移動します。以下のコマンドを実行してください:

cd fastify-core-project

移動後、プロジェクトのルートディレクトリに移動します。

プロジェクトの初期化

次に、作成したディレクトリでプロジェクトを初期化します。以下のコマンドを実行して、package.jsonファイルを作成します

npm init -y

このコマンドにより、デフォルトの設定でpackage.jsonが生成されます。

Fastifyのインストール

Fastifyパッケージをインストールします。以下のコマンドを実行してください

npm install fastify@4.0.0

これにより、Fastifyがプロジェクトに追加されます。

アプリケーションの作成

Fastifyアプリケーションを作成します。プロジェクトディレクトリ内に新しいファイル(例: app.js)を作成し、以下のコードを追加してください

const fastify = require('fastify');

const app = fastify();

app.get('/', (request, reply) => {
  reply.send('Hello, Fastify!');
});

app.listen({ port: 3000 }, (err) => {
  if (err) {
    console.error('サーバーの起動中にエラーが発生しました:', err);
    process.exit(1);
  }
  console.log('サーバーがポート3000で起動しました');
});

上記の例では、Fastifyアプリケーションの基本的な構造を示しています。app.get()メソッドを使用してルートパスに対するハンドラーを定義し、レスポンスとしてHello, Fastify!を返します。

最終的に以下のようなディレクトリ構造になります。

fastify-core-project
├── node_modules
│   └── (依存関係のパッケージ)
├── app.js
├── package-lock.json
└── package.json

サーバーの起動

最後に、Fastifyサーバーを起動します。以下のコマンドを実行してください

node app.js

サーバーが正常に起動すると、コンソールに「サーバーがポート3000で起動しました」と表示されます。 ブラウザでhttp://localhost:3000にアクセスして、Fastifyアプリケーションが正常に動作していることを確認してください。

CLIをを使った環境構築する方法

Fastifyは、Fastify CLIを使用して環境を構築することもできます。 Fastify CLIは、Fastifyプロジェクトを簡単に作成するためのコマンドラインツールです。 この記事では、Fastify CLIを使用した環境構築手順を詳しく説明します。

Fastify CLIのインストール

Fastify CLIをグローバルにインストールします。以下のコマンドを実行してください:

npm install -g fastify-cli

これにより、Fastify CLIがシステムにインストールされます。

プロジェクトの作成

Fastifyプロジェクトを作成するために、以下のコマンドを実行してください:

fastify generate fastify-cli-project

上記のコマンドでは、fastify-cli-projectという名前のプロジェクトディレクトリが作成されます。ディレクトリ名は任意のものに変更できます。

プロジェクトディレクトリへの移動

プロジェクトディレクトリに移動します。以下のコマンドを実行してください:

cd fastify-cli-project

移動後、プロジェクトのルートディレクトリに移動します。

依存関係のインストール

プロジェクトのルートディレクトリで、依存関係をインストールします。以下のコマンドを実行してください:

npm install

これにより、Fastifyおよび関連するパッケージがプロジェクトに追加されます。 最終的に以下のようなディレクトリ構造になります。

fastify-cli-project
├── node_modules
│   └── (依存関係のパッケージ)
├── plugins
│   ├── README.md
|   ├── sensible.js
|   └── support.js
├── routes
|   ├── example 
|   |   └── index.js
|   ├── README.md
│   └── root.js
├── test
│   ├── plugins
|   |   └── support.test.js
|   ├── routes
|   |   ├── example.test.js
|   |   └── root.test.js  
|   └── helpers.js
├── .gitignore
├── app.js
├── package.json
├── package-lock.json
└── README.md

サーバーの起動

Fastifyサーバーを起動します。以下のコマンドを実行してください:

npm start

サーバーが正常に起動すると、コンソールに「サーバーがポート3000で起動しました」と表示されます。 ブラウザでhttp://localhost:3000にアクセスして、Fastifyアプリケーションが正常に動作していることを確認してください。

Fastify CLIを使用すると、Fastifyプロジェクトの環境構築が簡単になります。Fastify CLIをインストールし、fastify generateコマンドを使用してプロジェクトを作成し、依存関係をインストールするだけで、素早くFastifyアプリケーションの開発を始めることができます。

Dockerを使った環境構築する方法

まずはじめに、Dockerをインストールしてください。公式のDockerウェブサイトから、対応するオペレーティングシステムに合わせたDockerのインストーラーをダウンロードし、インストールを行ってください。

プロジェクトディレクトリの作成

まず、Fastifyプロジェクトを作成するために新しいディレクトリを作成します。コマンドラインで以下のコマンドを実行してください

mkdir fastify-docker-project

プロジェクトディレクトリへの移動

プロジェクトディレクトリに移動します。以下のコマンドを実行してください:

cd fastify-docker-project

移動後、プロジェクトのルートディレクトリに移動します。

プロジェクトの初期化

Fastifyプロジェクトを初期化するために、以下のコマンドを実行します。

npm init -y

必要なパッケージのインストール

FastifyとDockerイメージの作成に必要なパッケージをインストールします。

npm install fastify@4.0.0

Dockerfileの作成

FastifyアプリケーションをDockerイメージとしてビルドするために、プロジェクトフォルダ内にDockerfileという名前のファイルを作成し、以下の内容を追加します。

FROM node:19.7.0-alpine

WORKDIR /app

COPY package*.json ./

COPY . .

EXPOSE 3000

CMD ["npm", "start"]

アプリケーションの作成

Fastifyアプリケーションを作成します。プロジェクトディレクトリ内に新しいファイル(例: app.js)を作成し、以下のコードを追加してください

Dcokerでは、全てのホストから接続が出来るように0.0.0.0でリッスンします。


const fastify = require('fastify');

const app = fastify();

app.get('/', (request, reply) => {
  reply.send('Hello, Fastify!');
});

app.listen({ port: 3000, host: "0.0.0.0" }, (err, address) => {
  if (err) {
    console.error('サーバーの起動中にエラーが発生しました:', err);
    process.exit(1);
  }
  console.log('サーバーがポート3000で起動しました');
});

Dockerイメージのビルド

以下のコマンドを使用して、Dockerイメージをビルドします。

docker build -t fastify-docker-project .

Dockerコンテナの実行

ビルドしたDockerイメージからDockerコンテナを実行します。

docker run -p 3000:3000 -d fastify-docker-project

これにより、FastifyアプリケーションがDockerコンテナ内で実行され、ホストのポート3000にマッピングされます。ブラウザやAPIテストツールなどから http://localhost:3000 にアクセスすることでFastifyアプリケーションにアクセスできます。

以上が、Dockerを使用してFastifyアプリケーションを環境構築する手順です。Dockerを活用することで、環境構築の手間を減らし、開発プロセスをスムーズにすることができます。

注意: ホストのファイアウォールやネットワーク設定によっては、ポート3000へのアクセスが制限されている場合があります。必要に応じて、ファイアウォールやネットワーク設定を調整してください。