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:
sailsApp.load(function (err) {...});
Argument | Type | Details | |
---|---|---|---|
1 | configOverrides | 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 . |
Argument | Type | Details | |
---|---|---|---|
1 | err | An error encountered while loading, or undefined if there were no errors. |
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!');
});
- 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 theready
event. The corehttp
hook will typically respond to theready
event by starting an HTTP server on the port configured viasails.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
andPORT
, 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 viarequire('sails/accessible/rc')('sails')
and pass them in as the first argument to.load()
.