リクエスト処理とレスポンスの返却

Node.jsの「Expressフレームワーク」における「リクエスト処理とレスポンスの返却」について詳しく説明します。


1. 基本概念

Expressは、Node.jsでWebアプリケーションやAPIを構築するための軽量なフレームワークであり、HTTPリクエストとレスポンスの処理を簡潔かつ柔軟に行えるように設計されています。


2. リクエスト処理の流れ

クライアントからのリクエストがサーバに届いたとき、Expressはそのリクエストを適切なルートに割り当てて処理します。

javascript
app.get('/example', (req, res) => { // req:リクエスト情報を保持するオブジェクト // res:レスポンスを返すためのオブジェクト });

req(リクエストオブジェクト)

リクエストに関する以下のような情報を含みます:

  • req.params:URLパラメータ

  • req.query:クエリ文字列

  • req.body:リクエストボディ(POST, PUTなど)

  • req.headers:ヘッダー情報

  • req.method:HTTPメソッド(GET, POSTなど)

  • req.url:リクエストされたURL


3. レスポンスの返却方法

Expressでは、レスポンスを返すためにres(レスポンスオブジェクト)を使用します。主な返却方法は以下の通りです。

res.send()

プレーンテキスト、HTML、JSONなどを返すことができます。

javascript
res.send('Hello World');

res.json()

JSON形式でレスポンスを返します。

javascript
res.json({ message: '成功しました' });

res.status()

ステータスコードを指定して返すことができます。

javascript
res.status(404).send('ページが見つかりません');

res.redirect()

別のURLにリダイレクトします。

javascript
res.redirect('/login');

4. 例:POSTリクエストの処理

javascript
const express = require('express'); const app = express(); app.use(express.json()); // JSONボディの解析 app.post('/submit', (req, res) => { const name = req.body.name; res.status(200).json({ message: `こんにちは、${name}さん` }); });

この例では、POST /submitにJSON形式のデータが送られてきた場合に、名前を受け取り、挨拶を返します。


5. 補足:ミドルウェアとの関係

リクエスト処理は、必要に応じてミドルウェアを通過させることができます。たとえばログの記録や認証チェックをミドルウェアで行い、その後にレスポンス処理を行います。

javascript
app.use((req, res, next) => { console.log(`アクセス:${req.method} ${req.url}`); next(); });

まとめ

  • リクエスト処理はreqオブジェクトで受け取り、レスポンスはresオブジェクトを用いて返却します。

  • res.send(), res.json(), res.status()などのメソッドで柔軟にレスポンスを制御できます。

  • ミドルウェアと組み合わせることで、拡張性の高い処理が可能です。

ChatGPT4o 生成日:2025/06/25