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分

ルーティング

パスごとに処理を分ける

前のレッスンで app.get を 2 つ書きました。あの 1 行ずつがルートです。パスと処理の結びつきを 1 件登録した、という意味になります。

JavaScript

app.get("/", (req, res) => res.send("Hello fleama")); app.get("/about", (req, res) => res.send("フリマアプリ fleama です"));

リクエストが届くと、Express は登録されたルートを上から順に見て、最初に合ったものを動かします。合うものが無ければ 404 を返します。この見分けが、前々回に if で書いていた処理の中身です。

上から順に見る、の意味

順に見るので、書く順番が結果を変えることがあります。

JavaScript

app.get("/items/new", (req, res) => res.send("出品フォーム")); app.get("/items/:id", (req, res) => res.send("商品の詳細"));

:id は「何でも入る場所」を表す書き方で、次のレッスンで詳しく扱います。ここで大事なのは、この 2 つを逆に書くと /items/new が :id に吸い込まれてしまうことです。具体的なパスを先、何でも合うパスを後に置きます。

メソッドが違えば別のルート

同じパスでも、メソッドが違えば別々に登録できます。

JavaScript

app.get("/items", (req, res) => res.send("一覧")); app.post("/items", (req, res) => res.send("登録"));

GET /items と POST /items は、パスは同じでも別のルートです。第4章で作る API は、この組み合わせが土台になります。

送り返す方法

res には返し方がいくつかあります。ここまで使ってきたのは send です。

書き方何を返すか
res.send("文字列")文字列をそのまま
res.json({ ... })JSON
res.status(404).send(...)コードを指定して返す

res.json は次のレッスンで使います。

1 つのリクエストに返せる応答は 1 回だけです。res.send を 2 回書くとエラーになります。分岐したときは、返したらその場で処理を終えてください。

手を動かす

演習では、ルートを 3 つ登録します。パスごとに違う応答を返し分けてください。

要件

  1. GET / に対して Hello fleama を返す
  2. GET /about に対して フリマアプリ fleama です を返す
  3. GET /items に対して 商品一覧です を返す

入出力例

request("GET", "/") → "200 Hello fleama" request("GET", "/about") → "200 フリマアプリ fleama です" request("GET", "/items") → "200 商品一覧です"

ヒント

すでにある `app.get("/", ...)` と同じ形を、あと 2 つ書き足します

パスの文字列と、返す文字列を変えるだけです

`return app;` より前に書き足してください。返したあとの行は動きません

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

関連レッスン

  • JSONを返す

    商品1件をJSONで返し、APIらしい応答を返せるようになります。

  • 開発の回し方

    変更から確認までを短くする回し方を知り、開発を高速化できるようになります。

  • つくる:サーバー始動

    健康確認と商品一覧のパスを備え、起動から応答までを自力で組めるようになります。

  • 第3章クイズ

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

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

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

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

メモ

ルーティング

⌘S で保存