設定
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に触れないようにします。
チャレンジ
簡単ホスティングサービスでは、ホストがポートを選び、環境変数を使って設定をサーバーに渡します。設定は一か所で環境変数から読み込み、ホストがサーバーの稼働状況を確認できるルートを追加しましょう。
config.jsで、環境変数PORTからportを、PAGE_SIZEからpageSizeを読み込みます。どちらもテキストとして渡されるので、数値に変換します。変数が設定されていない場合は、現在の値である3000と10を使います。server.jsでconfigをインポートします。サーバーをconfig.portで指定されたポートで起動し、使用するポートを表示します。PORT=8080の場合、コンソールには次の内容がそのまま表示されます:Task tracker API on port 8080routes/tasks.jsでもconfigをインポートします。リストルートでは、リクエストに?limit=がない場合、10の代わりにconfig.pageSizeを使います。リクエストに?limit=が指定されている場合は、引き続きその値が優先されます。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,
};
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
REST APIのすべてのレッスン
自分で練習してみよう: Expressプレイグラウンド