Menu
CoddyTech

設定

CoddyのNode.jsジャーニー「REST API」セクションの一部。レッスン 23/25。

ノートパソコンでは、サーバーはポート3000で待ち受けます。ホスティングサービスはnode server.jsでサーバーを起動し、ポートを自分で選んで、環境変数としてPORTを渡します。またホストは、ときどきGET /healthのようなルートを呼び出し、応答しなくなったときはサーバーを再起動します。

// MAX_UPLOAD_MB=5 node server.js
const maxUpload = Number(process.env.MAX_UPLOAD_MB ?? 2);
const shopName = process.env.SHOP_NAME ?? 'My Shop';

process.env内のすべての値は文字列であり、'5' + 1は'51'になるため、数値はNumberで変換します。設定はconfig.jsという1つのファイルで読み込み、ほかのすべての場所でインポートすることで、ほかのコードがprocess.envに触れないようにします。

challenge icon

チャレンジ

簡単

ホスティングサービスでは、ホストがポートを選び、環境変数を使って設定をサーバーに渡します。設定は一か所で環境変数から読み込み、ホストがサーバーの稼働状況を確認できるルートを追加しましょう。

  1. config.jsで、環境変数PORTからportを、PAGE_SIZEからpageSizeを読み込みます。どちらもテキストとして渡されるので、数値に変換します。変数が設定されていない場合は、現在の値である3000と10を使います。
  2. server.jsでconfigをインポートします。サーバーをconfig.portで指定されたポートで起動し、使用するポートを表示します。PORT=8080の場合、コンソールには次の内容がそのまま表示されます:
    Task tracker API on port 8080
  3. routes/tasks.jsでもconfigをインポートします。リストルートでは、リクエストに?limit=がない場合、10の代わりにconfig.pageSizeを使います。リクエストに?limit=が指定されている場合は、引き続きその値が優先されます。
  4. server.jsで、タスクルーターの外にGET /healthを追加します。ステータス200を返し、次の内容をそのまま返します:
    { "status": "ok" }

このレッスンはPORT=8080とPAGE_SIZE=2を使って実行されます。

試してみましょう:「実行」を押すと、コンソールにTask tracker API on port 8080と表示されます。GET /api/v1/tasksは、"total": 3と"pages": 2を含む2件のタスクを返します。GET /api/v1/tasks?limit=3は3件すべてを返します。GET /healthは{ "status": "ok" }を返します。

自分で試してみよう

// あなたのノートパソコンとサーバーの間で異なる設定。
// これらの値をデフォルトとして維持しつつ、各設定をprocess.envから読み込んでください。
export const config = {
    port: 3000,
    pageSize: 10,
};
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

REST APIのすべてのレッスン

自分で練習してみよう: Expressプレイグラウンド