1. fleama API の主なルート
  2. すべてログイン必須のとき
  3. ルートが無いとき
コース一覧
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分

完成と次のステップ

1行のスクリプトから始まりました

第1章では、商品の配列を console.log で並べただけでした。それがいま、出品・検索・購入・ログインまでできる API になっています。

プレーンテキスト

第1章 node でスクリプトが動く 第2章 データがファイルに残る 第3章 サーバーが待ち受ける 第4章 商品の CRUD が揃う 第5章 検索と検証が付く 第6章 データベースへ移り、購入が守られる 第7章 誰のものかが分かる 第8章 React とつながり、本番の形になる

各章の「つくる回」で、その章の知識だけを使って積み上げてきました。飛ばした段は 1 つもありません。

全体像が見えたはずです

フルスタックの部品が、これで一通り揃いました。

層どのコースで
画面React 入門・React 実践
APIこのコース
データSQL 入門・このコースの第6章
サーバーサーバー構築入門・このコースの第8章

フリマアプリを例にとれば、画面をクリックしてから商品が保存されるまで、どこで何が起きているかを全部たどれる状態です。これが「フルスタックが分かる」ということです。

このコースで繰り返し出てきた考え方

技術の細部より、こちらのほうが長く使えます。

  • 外から来るものを信じない — 入力検証、プレースホルダ、認可
  • 返すものは選ぶ — メールアドレス、パスワードハッシュ、エラーの中身
  • 層を分けて、約束だけを外に出す — データ層をファイルから DB へ入れ替えられた
  • 入り口で確かめ、奥では信じる — 検証と認証をミドルウェアと手前の if に集める
  • 落ちない仕組みではなく、落ちても戻る仕組み — トランザクション、Restart=always

次に進む先

進む先何が身につくか
Next.js 入門画面と API を 1 つのアプリで扱う
実務ポートフォリオ自分のアプリを設計から公開まで

どちらへ進むにしても、このコースで作った fleama API は残ります。動くものが手元にあるというのが、次の学習でいちばん効きます。

手を動かす

最後の演習では、作った API の全体像を組み立てます。自分が何を作ったのかを、コードの形で振り返ってください。

要件

  1. total は受け取った件数、protected は auth が true の件数
  2. public は auth が true でない件数
  3. methods は使われているメソッドを重複なく、最初に現れた順で並べる

入出力例

summarize([{"auth":false,"method":"GET","path":"/items"},{"auth":false,"method":"GET","path":"/items/:id"},{"auth":true,"method":"POST","path":"/items"},{"auth":true,"method":"PUT","path":"/items/:id"},{"auth":true,"method":"DELETE","path":"/items/:id"},{"auth":false,"method":"POST","path":"/login"}]) → {"methods":["GET","POST","PUT","DELETE"],"protected":3,"public":3,"total":6} summarize([{"auth":true,"method":"POST","path":"/items"},{"auth":true,"method":"DELETE","path":"/items/:id"}]) → {"methods":["POST","DELETE"],"protected":2,"public":0,"total":2} summarize([]) → {"methods":[],"protected":0,"public":0,"total":0}

ヒント

`public` と `protected` は `filter` の結果の件数で求められます

`methods` は重複を除きます。すでに入っているかを `includes` で確かめてから足します

`methods` の並びは、最初に現れた順です。並べ替えはしません

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

関連レッスン

  • 自由拡張

    欲しいAPIを設計から実装し、自分で機能を足せるようになります。

  • サーバーで常駐させる

    常駐の設定を書き、本番の形で動かせるようになります。

  • Reactと接続する

    モックを自作APIへ差し替え、フロントとバックをつなげられるようになります。

  • fleama API完成

    第4章で作った一覧表と突き合わせ、仕様を満たし切れるようになります。

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

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

  • 配列サイズ固定の同型データの集まり
  • エンドポイント「この URL を叩くとこの機能が動く」入口の住所
  • APIアプリ間でデータをやり取りする窓口
  • フルスタックフロント + バック + DB を一括開発
  • スタック後入れ先出し(LIFO)のデータ構造
  • SQLデータベースを操作するための共通言語
  • サーバークライアント(ブラウザなど)がリクエストを送り、サーバーがレスポンスを返す。
  • プレースホルダSQL の `?` 部分にあとから値を入れる仕組み
main.js
学習モード
エディタを読み込んでいます

メモ

完成と次のステップ

⌘S で保存