環境変数へのアクセスとキャストの方法
🏗 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() ユーティリティが利用できます:
- JavaScript
- TypeScript
./config/database.js
module.exports = ({ env }) => ({
connections: {
default: {
settings: {
password: env('DATABASE_PASSWORD'),
},
},
},
});
./config/database.ts
export default ({ 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')