【えくすぷれす】

Express とは?

💡 Node.jsの「定番」Webフレームワーク
📌 このページのポイント
Express.js(リクエスト処理の流れ) クライアント GET /users Express アプリケーション 認証 ミドルウェア auth() ログ ミドルウェア logger() ルートハンドラ app.get('/users', (req, res) => {...}) レスポンス JSON / HTML const app = express(); app.use(cors()); app.use(express.json()); app.get('/users', (req, res) => res.json(users)); ルーティング ミドルウェア テンプレート エラーハンドリング
Express.jsのイメージ
ひよこ ひよこ

Expressって何ができるの?

ペンギン先生 ペンギン先生

JavaScriptWebサーバーを作れるフレームワークだよ。「このURLにアクセスしたらこのデータを返す」というルーティングを、たった数行で書けるんだ。REST APIを作るときの定番ツールだね。

ひよこ ひよこ

ミドルウェアって何?

ペンギン先生 ペンギン先生

リクエストがサーバーに届いてからレスポンスを返すまでの間に、途中で処理を挟む仕組みだよ。「ログを記録する」「認証をチェックする」「リクエストのデータを解析する」みたいな処理を、パイプラインのように繋げて実行するんだ。

ひよこ ひよこ

Expressはシンプルってことは機能が少ないの?

ペンギン先生 ペンギン先生

Express自体は最小限の機能しか持っていないけど、npmにある豊富なミドルウェアライブラリを組み合わせることで何でもできるようになるよ。認証ならPassport.js、バリデーションならJoiやZod、みたいにね。

ひよこ ひよこ

Express以外の選択肢ってあるの?

ペンギン先生 ペンギン先生

Fastify、Koa、NestJSなんかがあるよ。特にNestJSはAngularのようなしっかりした構造を持っていて、大規模開発に向いてるんだ。Koaは同じ作者が作ったExpressの後継的な位置づけだね。

ひよこ ひよこ

おもしろい!Expressで大規模アプリを作るのは難しい?

ペンギン先生 ペンギン先生

Expressは自由度が高い分、プロジェクト構成を自分で考えないといけないんだ。特にエラーハンドリングミドルウェア引数が4つ(err, req, res, next)と独特で、非同期エラーをキャッチするにはexpress-async-errorsのようなラッパーが必要だったりする。ミドルウェアの実行順序とエラーの伝播経路をどう設計するかは、Express歴が長い人でもプロジェクトが大きくなると頭を悩ませるポイントなんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Express」って出てきたら「Node.jsWebサーバーを作るための定番フレームワークだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「express」 = 急行・高速
💬 素早くWebサーバーを構築できることから「急行列車」のような名前がつけられたよ
← 用語集にもどる