概要
Expressは、Node.js上でHTTP server・Web API・Web applicationを構築するためのminimalistなWeb frameworkです。routing、middleware chain、request/response helper、template engine連携を小さなcoreへまとめ、ORMやview engineを強制しない設計を採ります。2026年9月15日時点の最新安定版はExpress 5.2.1で、Node.js 18以上を要件とし、Express 5ではPromise rejectionをerror flowへ渡しやすくする一方、route path syntaxや古いAPIにはbreaking changeがあります。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
routingとmiddleware chainを中心に、HTTP request処理を小さな責務へ分割する
Expressの中心は、HTTP methodとpathに応じてhandlerを選ぶroutingと、request/responseを順番に処理するmiddlewareです。READMEはrobust routing、HTTP helper、content negotiation、view systemを主要featureとして挙げています。認証、logging、validation、session、static file、API endpointなどをmiddleware単位へ分け、application固有のbusiness logicをHTTP transportから分離しやすい構成です。
ExpressはORMやtemplate engineを固定せず、必要な機能をmiddleware・packageとして追加します。full-stack規約を強制するframeworkよりも、HTTP layerだけを薄く組み立てたいprojectで採用しやすい設計です。
出典:[2]
Express 5ではasync handlerのrejected Promiseをerror handlingへ流しやすくする
Express 5のerror handlingでは、route handlerやmiddlewareが返したPromiseがrejectされた場合、そのerrorをExpressのerror flowへ渡せます。async function内でthrowされたerrorも同じ経路へ載せやすく、Express 4で必要だった手動のtry/catchやnext(error) boilerplateを減らせます。
一方、custom error handlerは通常のmiddlewareとはsignatureが異なり、(err, req, res, next)としてmiddleware stackの後段へ置く基本構造は変わりません。error responseのpolicy、logging、secret leakage防止はapplication側で設計する必要があります。
API serverからserver-rendered Webまで、特定のdatabaseやview stackに縛られず使える
READMEはExpressをsingle-page application、website、hybrid、public HTTP APIに使えるframeworkとして位置づけています。response helper、redirect、caching、static file、content negotiationに加え、多数のtemplate engineを組み合わせられるため、JSON API専用frameworkではありません。
Node.js ecosystemのpackageを自由に組み合わせる前提なので、database access、validation、authentication、observabilityなどをproject要件に応じて選べます。既存Node applicationへ一部分だけrouting layerとして導入する構成も可能です。
出典:[2]
Node.jsでAPIやWeb backendを小さく始め、middleware単位で必要機能を足したいチームに
REST/JSON API、BFF、server-rendered Web、small serviceなどで、HTTP routingとmiddlewareを明示的に組みたいprojectに向きます。大規模frameworkの規約より、Node.jsの標準HTTP modelに近い薄い抽象化を好むチームや、既存packageを自由に選びたいチームでは扱いやすい選択肢です。
Express 5はNode.js 18以上。Express 4からはroute pathや削除APIを含むbreaking changeを確認する
Express 5はNode.js 18以上が必須です。migration guideは、基本APIはExpress 4に近い一方で互換性を壊す変更があると明記しています。app.del()、req.param()、旧res.send()/res.json() signatureなどが削除され、route path matching syntaxも変更されています。upgrade時はofficial codemodとautomated testを使い、単純なmajor version更新として扱わない方が安全です。
express.static()やres.sendFile()ではdotfile/hidden directoryの扱いも変わっています。.well-knownなどを配信しているapplicationでは、Express 4から5へ上げた際に404へ変わる可能性があるため、static file policyを明示的に確認する必要があります。
minimalistである分、security・validation・authentication・rate limitはapplication側の設計責任が大きい
Express coreはroutingとHTTP helperを中心とするため、input validation、authentication/authorization、CSRF、rate limiting、secure cookie、TLS terminationなどを自動で完成させるframeworkではありません。公式security best practicesもTLS、user inputの検証、secure cookie、dependencyの安全性などを個別に設計するよう案内しています。
productionではtrust proxy、redirect target、file path、request body size、session storeなどの設定次第でsecurity postureが変わります。middlewareを追加するだけで安全になると考えず、reverse proxyとapplication双方のboundaryを確認する必要があります。
5.2.1では5.2.0のquery parser変更をrevert。security情報はrelease noteとadvisoryを分けて読む
最新安定版5.2.1は、5.2.0で入ったextended query parserのbreaking changeをrevertしたpatch releaseです。release noteはこの挙動に実際のsecurity vulnerabilityはなく、CVE-2024-51999がrejectされたことを明記しています。security-relatedな変更に見えても、CVE番号だけで判断せず、official release note・security advisory・dependency updateを突き合わせる必要があります。
Expressは依存packageを複数組み合わせてHTTP behaviorを構成しています。framework versionだけでなくlockfileとtransitive dependencyの更新状況もproduction maintenanceに含める方が安全です。
参考にした公式資料
- [1]expressjs/express — GitHub repository(2026-09-15)
- [2]expressjs/express — README(2026-09-15)
- [3]expressjs/express — package.json(2026-09-15)
- [4]expressjs/express — Express 5.2.1 release(2026-09-15)
- [5]Express Docs — Upgrade to Express 5(2026-09-15)
- [6]Express Docs — Error handling(2026-09-15)
- [7]Express Docs — Production Best Practices: Security(2026-09-15)
編集部からの補足
Expressは「全部入りbackend framework」ではなく、HTTP routingとmiddlewareを小さく組み立てる基盤として評価しました。Express 5ではasync handlerが扱いやすくなる一方、route pathや旧API、static file挙動にbreaking changeがあるためmigration guide前提での更新が必要です。
3ステップで試す
- 1
ソースを取得
git clone --depth 1 https://github.com/expressjs/express.git - 2
リポジトリへ移動
cd express - 3
公式手順を確認
READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。
find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
成長
成長の推移 · 直近30日
69,450 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 11
- Open PR
- 123
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
あわせて探訪
- React250,454 Stars
宣言的なコンポーネントでWebとネイティブのUIを構築するJavaScriptライブラリ。
JavaScript - Vue 2212,485 Stars
2023年末にEOLを迎え、Vue 3への移行案内を担う旧Vueリポジトリ。
TypeScript - Bootstrap174,803 Stars
responsive・mobile-firstなWeb UIをCSS、JavaScript、grid、utility、componentから構築するframework。
MDX - Next.js142,312 Stars
Reactを拡張してフルスタックWebアプリを構築するVercel製フレームワーク。
JavaScript - FastAPI102,343 Stars
Python型ヒントから入力検証・OpenAPI・対話的API文書を生成するWebフレームワーク。
Python
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。