sails.config.globalsSailsがデフォルトで公開するグローバル変数の設定です。Sailsのグローバル設定は、Sailsによって導入されたグローバル変数を制御するためのみに使用されます。オプションは慣例的にconfig/globals.js設定ファイルで指定します。
| プロパティ | 型 | 慣例 | 詳細 |
|---|---|---|---|
_ (アンダースコア) |
_or_ |
require('lodash') |
指定されたlodashをグローバル変数(_)として公開します。または、これをfalseに設定すると、_グローバルを完全に無効にすることができます。(詳細については下記を参照) |
async |
_or_ |
require('async') |
指定されたasyncをグローバル変数(async)として公開します。または、これをfalseに設定すると、asyncグローバルを完全に無効にすることができます。(詳細については下記を参照) |
models |
true |
アプリの各モデルをグローバル変数(その「globalId」を使用)として公開します。たとえば、api/models/User.jsで定義されたモデルは、Userという「globalId」を持ちます。これが無効になっている場合でも、sails.modelsディクショナリでIDによってすべてのモデルにアクセスできます。 |
|
sails |
true |
アプリを表すsailsインスタンスを公開します。これが無効になっている場合でも、アクションではenv.sails、ポリシーではreq._sailsを使用してアクセスできます。 |
|
services |
true |
アプリの各サービスをグローバル変数(その「globalId」を使用)として公開します。例:api/services/NaturalLanguage.jsで定義されたサービスは、デフォルトでNaturalLanguageというglobalIdを持ちます。これが無効になっている場合でも、sails.services.*からサービスにアクセスできます。 |
_)およびAsyncライブラリの使用新しく生成されたSails 1.0アプリには、Lodash v3.10.1とAsync v2.0.1がデフォルトでインストールされ、グローバルに有効になっているため、require()を使用せずにアプリのコードで_とasyncを参照できます。これは、config/globals.jsの次のデフォルト設定で実現されます。
{
_: require('lodash'),
async: require('async')
}
プロパティをfalseに設定すると、アクセスを無効にできます。Sails v1.0より前は、プロパティをtrueに設定できましたが、これは非推奨となり、上記の構文に置き換えられました。
独自のバージョンのLodashまたはAsyncを使用するには、必要なバージョンをnpm installするだけです。たとえば、最新バージョンのLodash 4.x.xをインストールするには
npm install lodash@^4.x.x --save --save-exact
_)およびAsyncの使用グローバルを無効にする必要があるが、LodashやAsyncを引き続き使用したい場合は、運が良いです!Node.jsとNPMを使用すると、パッケージのインポートは非常に簡単です。
グローバルに依存せずに独自のバージョンのLodashまたはAsyncを使用するには、まずconfig/globals.jsで関連する設定を変更します。
// Disable `_` and `async` globals.
_: false,
async: false,
次に、独自のLodashをインストールします。
npm install lodash --save --save-exact
またはAsyncをインストールします。
npm install async --save --save-exact
最後に、他のNode.jsモジュールをインポートするのと同じように、必要なファイルの先頭にvar _ = require('lodash');またはvar async = require('async')を含めます。
- 上記のすべてのグローバル変数を無効にするためのショートカットとして、
sails.config.globals自体をfalseに設定できます。これは、上記の設定を手動で無効にした場合と同じ効果があります。