Edit Page

sails.load()

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

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

sailsApp.load(configOverrides, function (err) {

});

Or:

Usage

#
Argument Type Details
1 configOverrides 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
#
Argument Type Details
1 err Error? An error encountered while loading, or undefined if there were no errors.

Example

#
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().

Is something missing?

If you notice something we've missed or could be improved on, please follow this link and submit a pull request to the sails repo. Once we merge it, the changes will be reflected on the website the next time it is deployed.

Reference

Reference