コース一覧
    Node.jsバックエンド実践
    つくる:検索API完成

    Node.jsバックエンド実践

    入力検証、ミドルウェア、エラー処理、データベース接続を学び、実用的なバックエンドAPIを安全に組み立てられるようにします。

    1
    リクエスト処理と検証
    01. クエリパラメータ15分
    02. 並び替えとページング15分
    03. 入力検証15分
    04. ミドルウェア15分
    05. エラーハンドリング15分
    06. つくる:検索API完成20分
    07. 第5章クイズ10分
    2
    データベース接続
    01. DBにつなぐ15分
    02. 一覧・詳細をDB化15分
    03. 出品をDB化15分
    04. SQLインジェクション20分
    05. 更新・削除をDB化15分
    06. 購入トランザクション20分
    07. つくる:DB版fleama20分
    08. 第6章クイズ10分

    つくる:検索API完成

    新しいことは出てきません

    この回では、新しい知識は 1 つも出てきません。第5章で書いたものを 1 つにまとめて、fleama の検索を仕上げます。

    受け取り方の全体像

    第5章で、リクエストから値を受け取る道が出そろいました。

    どこから読み方使う場面
    パスreq.paramsどのリソースか
    クエリreq.queryどう絞り込むか
    本文req.body何を登録・更新するか

    どれも文字列で届くという点は共通です。req.body だけは express.json() を通しているので、数値は数値のまま届きます。

    順番が決まっている

    検索の処理には、自然な順番があります。

    プレーンテキスト

    絞り込む → 並べ替える → 切り出す

    この順でないと結果が変わります。切り出してから絞り込むと、2 ページ目に表示される件数が足りなくなります。範囲を狭めるのは最後です。

    守りの層が2つ付いた

    第4章までの API は、素直な入力しか想定していませんでした。第5章で 2 つの層が付きます。

    1. 入力検証 — おかしな入力を 400 で弾く
    2. エラー用ミドルウェア — 想定外の失敗を 500 で受け止める

    1 つ目は予想できる失敗、2 つ目は予想できない失敗の受け皿です。この 2 つがあると、API は簡単には落ちなくなります。

    ここまでに手に入れたもの

    何をどのレッスンで
    条件をクエリで受け取るクエリパラメータ
    並べ替えとページング並び替えとページング
    必須・型・範囲を確かめる入力検証
    共通処理を手前にまとめるミドルウェア
    最後の受け皿を置くエラーハンドリング

    手を動かす

    演習では、第5章のすべてを備えた検索 API を組み立てます。絞り込み・並べ替え・切り出しの順番に気をつけてください。

    要件

    1. GET /items は 絞り込む → 並べ替える → 切り出す の順に処理する
    2. POST /items は name 必須と price の型を確かめ、通れば「最大の id + 1」で 201 を返す
    3. すべてのルートより後にエラー用ミドルウェアを置き、500 で {"error":"サーバーで問題が起きました"} を返す

    ヒント

    `GET /items` は写しを作ってから、絞り込む・並べ替える・切り出すの順に処理します

    `POST /items` は登録の処理より前に、2 つの `if` を置きます

    エラー用ミドルウェアは引数 4 つで、`return app;` の直前に置きます

    生田 陸人
    監修生田 陸人
    ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
    編集 ゆめさく編集部·公開 2026/08/10

    関連レッスン

    • 第5章クイズ

      リクエスト処理と検証の理解を4択で確認します。

    • DBにつなぐ

      接続して1行取り出すところまで確かめ、NodeからSQLを発行できるようになります。

    • エラーハンドリング

      共通エラー処理で500を整形し、落ちないAPIにできるようになります。

    • ミドルウェア

      ログ出力ミドルウェアを自作し、共通処理を挟めるようになります。

    このレッスンに出てくる用語

    意味があいまいなまま進んだ語は、ここから読み直せます。

    • リクエストWeb 通信の基本単位、ブラウザの問い合わせとサーバーの返答
    • 処理計算や代入を表す長方形
    • エンドポイント「この URL を叩くとこの機能が動く」入口の住所
    • APIアプリ間でデータをやり取りする窓口
    • ミドルウェアリクエストとレスポンスの間に挟まる処理関数。
    • クエリパラメータURL の `?` 以降に付ける `key=value` 形式のリクエストデータ
    main.js
    エディタを読み込んでいます

    メモ

    つくる:検索API完成

    ⌘S で保存