1. 取得できたとき
  2. 更新できたとき
  3. 新しく作ったとき
  4. 削除したとき
  5. 送られた内容がおかしいとき
  6. 対象が無いとき
  7. 思わぬ失敗のとき
コース一覧
Node.js入門
ステータスコード

Node.js入門

Node.jsの実行モデル、npm、Expressによるルーティング、REST API設計、データベース接続、トランザクションを使った購入処理、トークン認証まで、バックエンド開発の基礎を、毎レッスン実際にコードを書き、フリマアプリのAPIを自分の手で作りながら学びます。

1
Node.jsとは
01. Node.jsとは15分
02. スクリプトを実行する15分
03. npmとは15分
04. package.json15分
05. npmスクリプト15分
06. つくる:プロジェクト始動20分
07. 第1章クイズ10分
2
モジュールと非同期の復習
01. import/export15分
02. ファイルを読み書きする15分
03. async/await復習15分
04. JSONの取り回し15分
05. つくる:データ層20分
06. 第2章クイズ10分
3
はじめてのサーバー
01. サーバーとリクエスト15分
02. Expressを導入する15分
03. ルーティング15分
04. JSONを返す15分
05. 開発の回し方15分
06. つくる:サーバー始動20分
07. 第3章クイズ10分
4
REST APIのきほん
01. RESTの考え方15分
02. 一覧を返す15分
03. 1件を返す15分
04. 登録を受ける15分
05. 更新と削除15分
06. ステータスコード15分
07. つくる:商品CRUD完成20分
08. 第4章クイズ10分
5
リクエスト処理と検証
01. クエリパラメータ15分
02. 並び替えとページング15分
03. 入力検証15分
04. ミドルウェア15分
05. エラーハンドリング15分
06. つくる:検索API完成20分
07. 第5章クイズ10分
6
データベース接続
01. DBにつなぐ15分
02. 一覧・詳細をDB化15分
03. 出品をDB化15分
04. SQLインジェクション20分
05. 更新・削除をDB化15分
06. 購入トランザクション20分
07. つくる:DB版fleama20分
08. 第6章クイズ10分
7
認証のきほん
01. 認証と認可15分
02. パスワードハッシュ15分
03. ログインとトークン15分
04. 保護ルート15分
05. 本人のものだけ15分
06. つくる:認証完備20分
07. 第7章クイズ10分
8
総合制作
01. fleama API完成20分
02. Reactと接続する20分
03. サーバーで常駐させる20分
04. 自由拡張20分
05. 完成と次のステップ15分

ステータスコード

番号で結果を伝える

ここまで 200 / 201 / 204 / 404 を使ってきました。ここで整理します。

ステータスコードは 3 桁ですが、意味を決めているのは先頭の 1 桁です。

先頭意味誰の話か
2うまくいった—
4頼み方がおかしい送った側
5こちらで失敗したサーバー側

4 と 5 の違いが要点です。4 は相手に直してもらう、5 はこちらが直すという切り分けになっています。

よく使うもの

コード使う場面
200取得・更新が成功した
201新しく作った
204成功したが返すものが無い(削除)
400送られてきた内容がおかしい
404指定されたものが無い
500こちらの都合で処理できなかった

400 だけ、まだ使っていません。次の第5章で入力検証を書くときに登場します。価格が数値でない、商品名が空、といった場合に返します。

400 と 404 の見分け

迷いやすい 2 つです。

プレーンテキスト

POST /items 価格が "abc" → 400 送られた内容がおかしい GET /items/999 → 404 指定されたものが無い

依頼の中身がおかしいのが 400、依頼は正しいが対象が無いのが 404 です。

500 は書かない

500 は自分で返すものではありません。想定していなかった失敗が起きたときに、結果的にそうなるものです。

自分で res.status(500) と書く場面はほとんどありません。書いているとしたら、本当は 400 か 404 で表せる場合が多いはずです。第5章のエラーハンドリングで、この扱いを整えます。

迷ったら成功か失敗か

細かい番号に迷ったら、まず 2 か 4 か 5 かを決めてください。そのうえで表を見れば十分です。正確な番号より、成功と失敗が取り違えられていないことのほうがずっと大切です。

手を動かす

演習では、場面から適切なステータスコードを選ぶ関数を書きます。判断の基準を自分の中に作ってください。

要件

  1. fetched(取得できた) と updated(更新できた) は 200
  2. created(新しく作った) は 201、deleted(削除した) は 204
  3. invalid(送られた内容がおかしい) は 400、missing(対象が無い) は 404、それ以外は 500

入出力例

pickStatus("fetched") → 200 pickStatus("updated") → 200 pickStatus("created") → 201 pickStatus("deleted") → 204 pickStatus("invalid") → 400 pickStatus("missing") → 404 pickStatus("unknown") → 500

ヒント

取得と更新はどちらも 200 なので、`||` でまとめて書けます

作成は 201、削除は 204 です。第4章で書いたとおりです

どれにも当てはまらなかったときが 500 です。最後の 1 行で返します

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

関連レッスン

  • つくる:商品CRUD完成

    一通りのCRUDを通しで動かし、商品まわりのAPIを完成できるようになります。

  • 第4章クイズ

    RESTとステータスコードの理解を4択で確認します。

  • クエリパラメータ

    キーワードとカテゴリで絞る検索APIを書き、検索条件を受け取れるようになります。

  • DBにつなぐ

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

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

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

  • ステータスコード200/201/404 など結果を示す3桁の数値
  • サーバークライアント(ブラウザなど)がリクエストを送り、サーバーがレスポンスを返す。
  • 処理計算や代入を表す長方形
  • 関数処理に名前を付けて再利用できる単位
  • 判断YES/NO 分岐を表す菱形
main.js
学習モード
エディタを読み込んでいます

メモ

ステータスコード

⌘S で保存