Back to Sails

sails.load()

docs/reference/application/advanced-usage/sails.load.md

12.12.20003.3 KB
Original Source

sails.load()

Load a Sails app into memory, but without lifting an HTTP server.

Useful for writing tests, command-line scripts, and scheduled jobs.

usage
sailsApp.load(configOverrides, function (err) {

});

Or:

  • sailsApp.load(function (err) {...});

Usage

ArgumentTypeDetails
1configOverrides((dictionary?))A dictionary of config that will override any conflicting options present in configuration files. If provided, this will be merged on top of sails.config.
Callback
ArgumentTypeDetails
1err((Error?))An error encountered while loading, or undefined if there were no errors.

Example

javascript
var Sails = require('sails').constructor;
var sailsApp = new Sails();

sailsApp.load({
  log: {
    level: 'error'
  }
}, function (err) {
  if (err) {
    console.log('Error occurred loading Sails app:', err);
    return;
  }

  // --•
  console.log('Sails app loaded successfully!');

});

Notes

  • This takes care of loading configuration files, initializing hooks (including the ORM), and binding routes. It does not run the bootstrap, and it does not start listening for HTTP requests and WebSocket connections.
  • More specifically, the difference between .lift() and .load() is that .lift() takes the additional steps of (1) running the app's bootstrap (if any), and (2) emitting the ready event. The core http hook will typically respond to the ready event by starting an HTTP server on the port configured via sails.config.port (1337 by default).
  • Even though a "loaded-but-not-lifted" Sails app does not listen for requests on an HTTP port, you can make "virtual" requests to it using sails.request
  • For an example of this in practice, see machine-as-script.
  • With the exception of NODE_ENV and PORT, configuration set via environment variables will not automatically apply to apps started using .load(), nor will options set in .sailsrc files. If you wish to use those configuration values, you can retrieve them via require('sails/accessible/rc')('sails') and pass them in as the first argument to .load().
<docmeta name="displayName" value="sails.load()"> <docmeta name="pageType" value="method">