この記事の内容
NodeJSで作ったアプリをNetlifyにアップロードしてWebサービスをリリースする方法を解説しています。
Chapter 1: Node.jsとExpressのインストール
-
Node.jsのインストール
Node.jsを公式サイトからダウンロードし、LTSバージョンをインストールします。 -
Expressジェネレーターのインストール
ターミナルで以下を実行し、Expressジェネレーターをインストールします。npm install -g express-generator
Chapter 2: Expressアプリの作成
-
新しいExpressアプリの生成
ターミナルで以下を実行してアプリを作成します。express myapp --view=pug
-
依存関係のインストール
作成したディレクトリに移動し、依存関係をインストールします。cd myapp npm install
Chapter 3: 開発環境のセットアップ
-
nodemonのインストール
開発中にサーバーを自動的に再起動するためにnodemonをインストールします。npm install --save-dev nodemon
-
スクリプトの追加
package.json
に以下のスクリプトを追加します。"scripts": { "start": "node ./bin/www", "dev": "nodemon ./bin/www" }
Chapter 4: 基本的なルーティングの設定
-
ルートの設定
routes/index.js
でホームページのルートを設定します。router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); });
Chapter 5: 静的ファイルの提供
-
静的ファイルの設定
public
ディレクトリにCSSや画像を配置し、app.js
で提供します。app.use(express.static(path.join(__dirname, 'public')));
Chapter 6: ビューの作成
-
ビューの設定
views/index.pug
に基本的なHTMLを記述します。doctype html html head title= title link(rel='stylesheet', href='/stylesheets/style.css') body h1= title p Welcome to #{title}
Chapter 7: Netlifyへのデプロイ準備
-
netlify.tomlの作成
ビルド設定を記述します。[build] command = "npm run build" publish = "public"
Chapter 8: GitHubへのプッシュ
-
リポジトリの作成とプッシュ
GitHubにリポジトリを作成し、プロジェクトをプッシュします。git init git add . git commit -m "Initial commit" git remote add origin <your-repo-url> git push -u origin master
Chapter 9: Netlifyでのデプロイ
-
Netlifyでの設定
Netlifyにログインし、GitHubからデプロイします。
Chapter 10: MooMooでのドメイン設定
-
DNS設定
MooMooの管理画面でNetlifyのネームサーバーを追加します。
Chapter 11: ネームサーバーアドレスの取得
-
nslookupを使用
nslookup
コマンドでSOAレコードを取得します。nslookup -type=soa example.com
Chapter 12: HTTPSの設定
-
NetlifyでHTTPSを有効化
設定でHTTPSを有効にします。
Chapter 13: 環境変数の設定
-
Netlifyのダッシュボードで設定
環境変数を追加します。
Chapter 14: 継続的インテグレーションの設定
-
ビルドフックの設定
GitHubのプッシュ時に自動デプロイを設定します。
Chapter 15: エラーハンドリング
-
エラーハンドリングミドルウェアの追加
app.js
に追加します。app.use(function(err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: err }); });
Chapter 16: セキュリティの強化
-
helmetのインストール
HTTPヘッダーをセキュアにします。npm install helmet
-
helmetの使用
app.js
で使用します。const helmet = require('helmet'); app.use(helmet());
Chapter 17: ログの管理
-
morganの使用
リクエストログを管理します。npm install morgan
-
morganの設定
app.js
で設定します。const logger = require('morgan'); app.use(logger('dev'));
Chapter 18: APIの作成
-
APIエンドポイントの設定
routes/api.js
ファイルを作成し、GETエンドポイントを設定します。const express = require('express'); const router = express.Router(); router.get('/data', (req, res) => { res.json({ message: 'Hello, World!' }); }); module.exports = router;
-
ルートの追加
app.js
に新しいルートを追加します。const apiRouter = require('./routes/api'); app.use('/api', apiRouter);
Chapter 19: テストの実行
-
ユニットテストの実行
mocha
やchai
を使用します。
Chapter 20: メンテナンスと更新
-
依存パッケージの更新
定期的に更新し、セキュリティパッチを適用します。
推奨ファイルとフォルダ構造
以下は、Express.jsプロジェクトの典型的なフォルダ構造です。
📁 myapp/
├── 📄 app.js
├── 📁 bin
│ └── 📄 www
├── 📁 config
│ ├── 📄 database.js
│ └── 📄 environment.js
├── 📁 controllers
│ ├── 📄 userController.js
│ └── 📄 productController.js
├── 📁 middleware
│ ├── 📄 authentication.js
│ └── 📄 logging.js
├── 📁 models
│ ├── 📄 user.js
│ └── 📄 product.js
├── 📁 routes
│ ├── 📄 api.js
│ ├── 📄 userRoutes.js
│ └── 📄 productRoutes.js
├── 📁 public
│ ├── 📁 styles
│ ├── 📁 images
│ └── 📁 scripts
├── 📁 views
│ ├── 📄 index.pug
│ └── 📄 error.pug
├── 📁 tests
│ ├── 📁 unit
│ └── 📁 integration
└── 📁 utils
├── 📄 helpers.js
└── 📄 validation.js
この構造は、コードの可読性とメンテナンス性を向上させ、プロジェクトのスケーラビリティを確保します。