1. 動作確認のパス
  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 つも出てきません。第3章で書いたものを 1 つにまとめて、fleama のサーバーを立ち上げます。

データ層とサーバーがつながる

第2章で「読む・書く」を引き受けるデータ層を作りました。第3章では待ち受ける口を作りました。この 2 つをつなぐと、はじめて API になります。

プレーンテキスト

リクエスト → ルート → データ層 → 応答

サーバーの仕事は、この橋渡しです。どのパスに来たかを見分け、データ層から必要なものを取り出し、返す形に整えて渡します。

/health を先に作る理由

実務のサーバーには、たいてい /health のような動いているかを答えるだけのパスがあります。

中身のある処理は何もしません。ですが「サーバーが立っているか」と「データが正しく返るか」を切り分けられます。第8章で本番へ持っていくとき、まずここを叩いて生死を確かめます。

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

何をどのレッスンで
メソッドとパスで依頼を見分けるサーバーとリクエスト
Express で待ち受けるExpressを導入する
パスごとに処理を分けるルーティング
JSON で返すJSONを返す
直したものを反映させる開発の回し方

ここから先

次の第4章では、この /items を本格的な API に育てます。1 件だけ取り出す、新しく登録する、書き換える、消す。フリマとして必要な操作が一通り揃います。

手を動かす

演習では、第3章のすべてを使って fleama のサーバーを組み立てます。動作確認のパスと、商品を返すパスの両方を備えてください。

要件

  1. GET /health は {"status":"ok"} を返す
  2. GET /items は id name price だけにした商品の配列を返す
  3. GET /items/count は {"count":件数} を返す

入出力例

request("GET", "/health") → "200 {"status":"ok"}" request("GET", "/items") → "200 [{"id":1,"name":"レザースニーカー","price":4800},{"id":2,"name":"古着のデニムジャケット","price":6200},{"id":3,"name":"木製のスツール","price":3500}]" request("GET", "/items/count") → "200 {"count":3}"

ヒント

`/health` はいま `res.send` なので、`res.json({ status: "ok" })` に直します

商品を返すときは `ownerEmail` を落とした形に整えてから渡します

件数は `items.length` です。`{ count: ... }` の形にして返します

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

関連レッスン

  • 第3章クイズ

    Expressとルーティングの理解を4択で確認します。

  • RESTの考え方

    fleamaのAPI一覧表を設計し、リソースとメソッドで設計できるようになります。

  • クエリパラメータ

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

  • DBにつなぐ

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

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

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

  • サーバークライアント(ブラウザなど)がリクエストを送り、サーバーがレスポンスを返す。
  • エンドポイント「この URL を叩くとこの機能が動く」入口の住所
  • APIアプリ間でデータをやり取りする窓口
  • 処理計算や代入を表す長方形
  • メソッドクラスに属する関数
  • リクエストWeb 通信の基本単位、ブラウザの問い合わせとサーバーの返答
  • ルーティングURLパスとHTTPメソッドに応じて処理を振り分ける仕組み。
  • applicationJSON 本文を送るときの Content-Type
main.js
学習モード
エディタを読み込んでいます

メモ

つくる:サーバー始動

⌘S で保存