sails.config.globals
Configuration for the global variables that Sails exposes by default. The globals configuration in Sails is only for controlling global variables introduced by Sails. The options are conventionally specified in the config/globals.js
configuration file.
Property | Type | Convention | Details |
---|---|---|---|
_ (underscore) |
_or_ |
require('lodash') |
Expose the specified lodash as a global variable (_ ). Or set this to false to disable the _ global altogether. (More on that below.) |
async |
_or_ |
require('async') |
Expose the specified async as a global variable (async ). Or set this to false to disable the async global altogether. (More on that below.) |
models |
true |
Expose each of your app's models as a global variable (using its "globalId"). For example, a model defined in api/models/User.js would have a "globalId" of User . If this is disabled, then you can still access all of your models by identity in the sails.models dictionary. |
|
sails |
true |
Expose the sails instance representing your app. Even if this is disabled, you can still get access to it in your actions via env.sails , or in your policies via req._sails . |
|
services |
true |
Expose each of your app's services as global variables (using their "globalId"). E.g. a service defined in api/services/NaturalLanguage.js would have a globalId of NaturalLanguage by default. If this is disabled, you can still access your services via sails.services.* . |
_
) and Async librariesNewly-generated Sails 1.0 apps have Lodash v3.10.1 and Async v2.0.1 installed by default and enabled globally so that you can reference _
and async
in your app code without needing to require()
. This is effected with the following default configuration in config/globals.js
:
{
_: require('lodash'),
async: require('async')
}
You can disable access by setting the properties to false
. Prior to Sails v1.0
you could set the properties to true
; this has been deprecated and replaced by the syntax above.
To use your own version of Lodash or Async, you just need to npm install
the version you want. For example, to install the latest version of Lodash 4.x.x:
npm install lodash@^4.x.x --save --save-exact
_
) and Async without globalsIf you have to disable globals, but would still like to use Lodash and/or Async, you're in luck! With Node.js and NPM, importing packages is very straightforward.
To use your own version of Lodash or Async without relying on globals, first modify the relevant settings in config/globals.js
:
// Disable `_` and `async` globals.
_: false,
async: false,
Then install your own Lodash:
npm install lodash --save --save-exact
Or Async:
npm install async --save --save-exact
Finally, just like you'd import any other Node.js module, include var _ = require('lodash');
or var async = require('async')
at the top of any file where you need them.
- As a shortcut to disable all of the above global variables, you can set
sails.config.globals
itself tofalse
. This does the same thing as if you had manually disabled each of the settings above.