Page Contents

概要

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です。

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”など)が入ります。 これを利用することで、開発・テスト・本番環境別の設定が可能になります。

アプリケーション設定ファイルの例:

データソース設定ファイルの例:

ミドルウェア設定ファイルの例:

サンプルアプリケーションは、 https://github.com/strongloop/loopback-example-full-stack/tree/master/server を参照してください。

アプリケーション全体の設定

アプリケーションのサーバサイド設定は 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 です。

例えば

config.production.js

module.exports = {
  host: process.env.CUSTOM_HOST,
  port: process.env.CUSTOM_PORT
};

スタックトレースが出力されないようにする

既定では、スタックトレースはJSONレスポンスには返されませんが、開発中やデバッグ中はそれを有効にし、本番ではオフにしたいということがあります。

  • NODE_ENV 環境変数を “production” にセットします。
  • 以下の記述を server/middleware.production.json に追加します。

server/middleware.production.json

"final:after": {
    "strong-error-handler": {}
  }

API Explorerを無効化する

LoopBack API Explorer は、アプリケーションの開発中には非常に便利ですが、 本番環境ではセキュリティ上の理由から公開したくないと思うかもしれません。

loopback-component-explorerを使っているアプリケーションで、本番環境でexplorerを無効化するには以下のようにします。

  • NODE_ENV 環境変数を “production” にセットします。
  • server/component-config.production.json にて、以下のように設定します。

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 or datasources.local.json
  • datasources.env.js or datasources.env.json, where env is the value of NODE_ENV environment variable (typically development or production). For example, datasources.production.json.

Example data sources:

datasources.json

{
  db: {
    connector: 'memory'
  }
}

datasources.production.json

{
  db: {
    connector: 'mongodb',
    database: 'myapp',
    user: 'myapp',
    password: 'secret'
  }
}

You can also configure your datasource.env.js file to use environment variables:

datasources.production.js

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 .