Express まとめ Webアプリケーション

更新日:2025/02/01

Expressのいいポイント

軽量で柔軟

豊富なミドルウェアエコシステム

  • 認証、セッション管理、CORS対策など、多様なミドルウェアが利用可能
  • npmを通じて簡単に導入できる
  • 自作ミドルウェアの作成も容易

直感的なルーティング

データベース統合の容易さ

Express vs Nest.js

Expressのメリット:

  • 学習曲線が緩やか
  • 最小限の機能で始められる
  • 自由度が高い
  • 軽量で高速

Nest.jsとの違い

アーキテクチャが固定的

Nest.jsは堅牢だが複雑

TypeScriptが必須

Node.jsフレームワーク比較 Express • 軽量で高速 • 柔軟なルーティング • 豊富なミドルウェア • 学習曲線が緩やか • 大規模コミュニティ • 最小限の機能 • カスタマイズ性 • マイクロサービス • APIサーバに最適 Nest.js • TypeScript標準 • Angular風設計 • DI/IoC対応 • 学習曲線が急 • エンタープライズ向け • モノリシック構成 • CLIツール充実 • フルスタック対応 Fastify • 高パフォーマンス • Express互換 • スキーマ検証 • プラグイン機構 • 新しい技術 • 小規模コミュニティ • 軽量設計 Koa • Express後継 • より小さなコア • async/await対応 • エラーハンドリング • ミドルウェア重視 • モダンな設計 最適な利用シーン: API開発 大規模アプリ 高性能API 軽量アプリ

Webアプリケーション作成

Expressアプリケーションのエントリーポイントとなるファイルを作成

Expressアプリケーションインスタンスを作成

// Node.jsのrequire関数を使って、expressモジュールをインポートします
const express = require("express");

// 
const app = express();
  • express()を実行することで、新しいExpressアプリケーションインスタンスを作成します
  • このインスタンスが、以下の重要な機能を提供します:
    • HTTPリクエストの処理
    • ミドルウェアの追加
    • ルーティングの設定
    • 静的ファイルの提供
    • エラーハンドリング
my-express-app/ src/ index.js / app.js / server.js routes/ – api.js – auth.js controllers/ – userController.js – authController.js models/ – User.js – Post.js middleware/ – auth.js – error.js config/ – database.js – env.js public/ – css/ – js/ package.json README.md .env .gitignore

app.use()

app.use() は、Expressアプリケーションにリクエストに対する処理を追加するためのメソッドです。

app.use((req, res, next) => {
    // 何らかの処理
    next();
});

// next()は「次の処理に進んでいいよ」というサインのような役割

もっと具体的に説明すると

「リクエストを処理する関数」をapp.use()に渡します

⬇️

その関数は (req, res, next) という引数を持つ

⬇️

その関数はリクエストに対して何らかの処理を行う

すでに作られた関数(ライブラリ)を渡す場合は「(req, res, next)」記述されません

// req, res, next は見えないが内部で使われている
app.use(express.json());

req, res, nextは必ず存在するのですが、ライブラリを使う場合は私たちからは見えないだけ、ということになります。

リクエスト発生時:

    • 定義された処理が上から順に確認される
    • リクエストに該当する処理が実行される
    • next()がある場合は次の処理へ
    • res.send()などでレスポンスを返すと、そのリクエストの処理は終了
    人気記事ランキング
    話題のキーワードから探す