コース一覧
    Node.js API開発
    開発の回し方

    Node.js API開発

    HTTPサーバーとREST APIの設計・実装を学び、Node.jsでクライアントから使えるAPIを構築できるようにします。

    1
    はじめてのサーバー
    01. サーバーとリクエスト15分
    02. Expressを導入する15分
    03. ルーティング15分
    04. JSONを返す15分
    05. 開発の回し方15分
    06. つくる:サーバー始動20分
    07. 第3章クイズ10分
    2
    REST APIのきほん
    01. RESTの考え方15分
    02. 一覧を返す15分
    03. 1件を返す15分
    04. 登録を受ける15分
    05. 更新と削除15分
    06. ステータスコード15分
    07. つくる:商品CRUD完成20分
    08. 第4章クイズ10分

    開発の回し方

    直すたびに止めて起動し直す

    サーバーは起動したあと待ち続けます。ここに落とし穴があります。コードを直しても、動いているサーバーは古いままです。

    直したのに応答が変わらない、と悩む時間のほとんどはこれです。起動し直すまで、新しいコードは反映されません。

    --watch で自動的に入れ替える

    Node.js には、ファイルの変更を見張って自動で起動し直す仕組みがあります。

    プレーンテキスト

    node --watch app.js

    これで保存するたびにサーバーが入れ替わります。第1章で npm run dev に登録したのが、まさにこの形でした。

    JSON

    {
      "scripts": {
        "start": "node app.js",
        "dev": "node --watch app.js"
      }
    }

    開発中は npm run dev、本番では npm start を使います。本番で勝手に再起動されると困るので、分けてあります。

    ポートが空かないことがある

    止めそこねたサーバーが残っていると、次の起動でこうなります。

    プレーンテキスト

    Error: listen EADDRINUSE: address already in use :::3000

    そのポートは誰かが使っている、という意味です。犯人はたいてい自分が前に起動したサーバーです。前のものを止めるか、別のポート番号を使えば解決します。

    ポート番号を決め打ちにしない

    本番のサーバーでは、どのポートを使うかを環境が指定してくることがあります。

    JavaScript

    const port = process.env.PORT || 3000;
    app.listen(port);

    process.env は、第1章で見た process の中にある環境変数です。指定があればそれを使い、無ければ 3000 を使う、という書き方になります。環境ごとに変わる値をコードに埋め込まないのは、第8章で本番へ持っていくときに効いてきます。

    手を動かす

    演習では、ポート番号を決める関数を書きます。環境変数を優先し、無ければ既定値に落とす形にしてください。

    要件

    1. env.PORT が数値として読めるならその数値を返す
    2. PORT が無い・空文字・数値にならない文字列のときは既定値を返す
    3. 返すのは文字列ではなく数値にする

    ヒント

    文字列を数値にするには `Number(...)` を使います

    `Number("abc")` は `NaN` になります。`Number.isNaN(...)` で見分けられます

    空文字のときも既定値に落とすので、値があるかどうかも一緒に確かめます

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

    関連レッスン

    • つくる:サーバー始動

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

    • 第3章クイズ

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

    • RESTの考え方

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

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

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

    • サーバークライアント(ブラウザなど)がリクエストを送り、サーバーがレスポンスを返す。
    • Node.jsJavaScript をサーバ側で動かすランタイム
    • ポート番号1台のサーバーで複数のサービスを区別するための番号。
    • 環境変数JWT_SECRET など秘匿値を渡す手段
    • 変数データに名前をつけて参照する仕組み
    • 関数処理に名前を付けて再利用できる単位
    main.js
    エディタを読み込んでいます

    メモ

    開発の回し方

    ⌘S で保存