【えくすぷれす】

Express とは?

最終更新:
💡 リクエストの受付と応答を、部品で組み立てる

Node.jsでWebサーバーやAPIを作るためのWebフレームワーク。URLとHTTPメソッドに応じた処理の振り分けや、ミドルウェアによるリクエスト・レスポンスの処理を組み立てられる。

📌 このページのポイント
Express:応答までの処理を組む利用者GET /usersリクエストExpressアプリExpressアプリに登録した処理の例▤ ログ記録するnext()◇ ルート処理を選ぶGET /users✓ 応答JSONを返すres.json()次へ渡すか、応答して終えるエラーは、エラー用の処理へ渡す
条件に合う処理が登録順に実行され、途中で応答を終えることもあります。
ひよこ ひよこ
Expressって、何を作れるの?
ペンギン先生 ペンギン先生
Node.jsでWebサーバーやAPIを作れるよ。例えばGET /usersへのリクエストに利用者の一覧をJSONで返す、といった処理を定義できるんだ。
ひよこ ひよこ
ルーティングって、何を振り分けるの?
ペンギン先生 ペンギン先生
URLのパスと、GETやPOSTなどのHTTPメソッドに応じて、処理を選ぶことだよ。app.getでGETの処理を登録するなど、同じパスでもメソッド別に処理を分けられるんだ。
ひよこ ひよこ
ミドルウェアは、全部順番に通るの?
ペンギン先生 ペンギン先生
登録順に、条件に合う処理が実行されるよ。ログ記録、入力の解析などを追加できる。処理を次へ渡すならnext()、応答するならres.sendやres.jsonなどで終える。途中で応答したり、エラー処理へ渡したりすることもあるんだ。
ひよこ ひよこ
認証やデータベースも、全部そろっている?
ペンギン先生 ペンギン先生
Expressはルーティングとミドルウェアを中心とした、小さな構成のフレームワークだよ。認証やデータベース接続などは、別のライブラリや自分の処理を組み合わせる。用途に合わせて構成や処理の順序を決めるんだ。
ひよこ ひよこ
非同期の処理でエラーが起きたら?
ペンギン先生 ペンギン先生
Express 5では、ハンドラが返すPromiseの失敗やasync関数内の例外は、自動でエラー処理へ渡されるよ。Express 4の説明とは分けて読む必要がある。コールバックやタイマーなど、返したPromiseに含まれない処理のエラーはnext(err)へ渡すなどの対応が必要だよ。エラー用ミドルウェアは(err, req, res, next)の4引数で定義するんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Express」って出てきたら「Node.jsで、アクセスへの応答を組み立てるWebフレームワーク」と思えばだいたいOK!
📖 おまけ:英語の意味
「Express」 = Node.js向けWebフレームワークの名前
💬 ここでは、WebサーバーやAPIを作るためのライブラリの名前だよ。英単語の意味だけから、他の方法より速いという性能の保証だとは考えないでね。

参考資料

← 用語集にもどる