概要
LoopBackアプリケーションには、以下の設定ファイルが存在します。
- アプリケーション全体設定ファイルは、既定では
server/config.json
です。 単純なJSONで表現できない値が必要な時は、server/config.local.js
を使うこともできます。 - データソース設定ファイルは、既定では
server/datasources.json
です。 単純なJSONで表現できない値が必要な時は、server/datasources.local.js
を使うこともできます。 - モデルに関するアプリケーションレベルの設定は、既定では
server/model-config.json
です。 - ミドルウェア設定ファイルは、既定では
server/middleware.json
です。 - LoopBackコンポーネントの設定ファイルは、既定では
server/component-config.json
です。
Note:
*.js
ファイルを使った LoopBack アプリケーションの設定は、オリジナルの
.json
ファイルが正しい位置にある場合のみ、動作します。.json
ファイルを .js
ファイルで置き換えるには、
.json
ファイルの設定値を .js
ファイルで上書きしてください。 つまり、既定の .json
ファイルが空でも、
全ての設定が .js
ファイルで行えることを意味します。
LoopBack は、以下の設定ファイルが存在している場合、常にこれらを読み込みます。
server/config.json
.server/config.local.json
またはserver/config.local.js
.server/datasources.json
server/datasources.local.json
またはserver/datasources.local.js
server/model-config.json
server/model-config.local.json
またはserver/model-config.local.js
server/middleware.json
server/middleware.local.json
またはserver/middleware.local.js
server/component-config.json
server/component-config.local.json
またはserver/component-config.local.js
さらに、NODE_ENV環境変数がセットされている場合、LoopBackは以下の設定を読み込もうとします。
server/config.env.json/js
server/datasources.env.json/js
server/model-config.env.json/js
server/middleware.env.json/js
server/component-config.env.json/js
env
には、NODE_ENVの値(典型的なものは “development”・”staging”・”production”など)が入ります。
これを利用することで、開発・テスト・本番環境別の設定が可能になります。
Note:
LoopBackアプリケーションは複数の設定ファイルを読み込めるため、潜在的にそれらが衝突する可能性があります。 最も優先度の高いファイルでの設定値が常に有効となります。優先度は以下のとおりです。
- NODE_ENVの値による 環境別の設定。例えば
server/config.staging.json
などです。 - ローカル設定ファイル。 例えば
server/config.local.json
などです。 - 既定の設定ファイル。例えば
server/config.json
などです。
アプリケーション設定ファイルの例:
データソース設定ファイルの例:
ミドルウェア設定ファイルの例:
サンプルアプリケーションは、 https://github.com/strongloop/loopback-example-full-stack/tree/master/server を参照してください。
Important:
環境別の設定ファイルがある場合でも、LoopBackでは、既定のベースファイルが必要です。空のオブジェクトが書かれたJSONファイルで十分です。
アプリケーション全体の設定
アプリケーションのサーバサイド設定は server/config.json
で定義します。
config.json
でセットされた値は、以下のもので上書きできます。
config.local.js
またはconfig.local.json
config.env.js
またはconfig.env.json
,env
の場所には、NODE_ENV
の値(典型的なものはdevelopment
やproduction
)が入ります。 例えばconfig.production.json
です。
Important: 追加のファイルが上書きできるのは、最上位レベルの値型(文字列・数値)のキーのみです。入れ子になったオブジェクトや配列はサポートされていません。
例えば
module.exports = {
host: process.env.CUSTOM_HOST,
port: process.env.CUSTOM_PORT
};
スタックトレースが出力されないようにする
既定では、スタックトレースはJSONレスポンスには返されませんが、開発中やデバッグ中はそれを有効にし、本番ではオフにしたいということがあります。
- NODE_ENV 環境変数を “production” にセットします。
- 以下の記述を
server/middleware.production.json
に追加します。
"final:after": {
"strong-error-handler": {}
}
Note:
アプリケーション生成ツール は上記の設定を持つ middleware.developmnet.json
ファイルを作成します。
NODE_ENV環境変数が development
でないことを確認すればOKです。
API Explorerを無効化する
LoopBack API Explorer は、アプリケーションの開発中には非常に便利ですが、 本番環境ではセキュリティ上の理由から公開したくないと思うかもしれません。
loopback-component-explorerを使っているアプリケーションで、本番環境でexplorerを無効化するには以下のようにします。
- NODE_ENV 環境変数を “production” にセットします。
server/component-config.production.json
にて、以下のように設定します。
{
"loopback-component-explorer": null
}
HTTPレスポンスにスタックトレースを含める
既定では、LoopBack 3.0アプリケーションは、HTTPレスポンスにスタックトレースを含めません(本番環境で一般的)。開発やデバッグ用に、それらを含めたい場合、NODE_ENV
環境変数の値を development
にしてください。すると、アプリケーションは、middleware.development.json
を使うようになります。
このファイルは、以下のような設定を含んでおり、HTTPレスポンスにスタックトレースが含まれるようになります。
{
"final:after": {
"strong-error-handler": {
"params": {
"debug": true,
"log": true
}
}
}
}
データソース設定
You can override values set in datasources.json
in the following files:
datasources.local.js
ordatasources.local.json
datasources.env.js
ordatasources.env.json
, whereenv
is the value ofNODE_ENV
environment variable (typicallydevelopment
orproduction
). For example,datasources.production.json
.
Example data sources:
{
db: {
connector: 'memory'
}
}
{
db: {
connector: 'mongodb',
database: 'myapp',
user: 'myapp',
password: 'secret'
}
}
You can also configure your datasource.env.js
file to use environment variables:
module.exports = {
db: {
connector: 'mongodb',
hostname: process.env.DB_HOST,
port: process.env.DB_PORT || 27017,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: 'myapp',
}
In the above example, running export PRODUCTION=true
(or set PRODUCTION=true
for Windows) will load
the datasource.
Getting values from environment variables
You can easily get the value of an environment variable in an application. The command you use depends on your operating system.
MacOS and Linux
Use this command to set an environment variable and run an application in one command:
$ MY_CUSTOM_VAR="some value" node .
or in separate commands:
$ export MY_CUSTOM_VAR="some value"
$ node .
Then this variable is available to your application as process.env.MY_CUSTOM_VAR
.
Windows
On Windows systems, use these commands:
C:\> set MY_CUSTOM_VAR="some value"
C:\> node .