Skip to main content

環境変数へのアクセスとキャストの方法

🏗 Work in progress

The content of this page might not be fully up-to-date with Strapi 5 yet.

ほとんどの使用例では、環境間で異なる設定(例えば、データベースの資格情報)が存在します。

これらの資格情報を設定ファイルに直接書き込むのではなく、アプリケーションのルートにある .env ファイルに変数を定義することができます:

# path: .env

DATABASE_PASSWORD=acme

ロードする .env ファイルのパスをカスタマイズするには、アプリケーションを起動する前に ENV_PATH という名前の環境変数を設定します:

ENV_PATH=/absolute/path/to/.env npm run start

環境変数へのアクセス

.env ファイルに定義された変数は、設定ファイルやアプリケーションファイルのどこでも process.env.{variableName} を使用してアクセスすることができます。

設定ファイルでは、デフォルトを定義し、値をキャストするための env() ユーティリティが利用できます:

./config/database.js

module.exports = ({ env }) => ({
connections: {
default: {
settings: {
password: env('DATABASE_PASSWORD'),
},
},
},
});
✏️ Note

構文 property-name: env('VAR', 'default-value').env ファイルに保存された値を使用します。 .env ファイルに指定された値がない場合は、デフォルトの値が使用されます。

環境変数のキャスト

env() ユーティリティは、環境変数を異なる型にキャストするために使用できます:

// 定義されている場合は、キャストせずにenvを返します
env('VAR', 'default');

// 整数にキャストします(parseIntを使用)
env.int('VAR', 0);

// 浮動小数点数にキャストします(parseFloatを使用)
env.float('VAR', 3.14);

// ブール値にキャストします(値が'true'と等しいかどうかを確認)
env.bool('VAR', true);

// JSオブジェクトにキャストします(JSON.parseを使用)
env.json('VAR', { key: 'value' });

// 配列にキャストします(構文: ENV_VAR=[value1, value2, value3] | ENV_VAR=["value1", "value2", "value3"])
env.array('VAR', [1, 2, 3]);

// 日付にキャストします(new Date(value)を使用)
env.date('VAR', new Date());

// oneOf union型に一致するenvを返します
env.oneOf('UPLOAD_PROVIDER', ['local', 'aws'], 'local')