sails
Version:
API-driven framework for building realtime apps, using MVC conventions (based on Express and Socket.io)
60 lines (38 loc) • 3.14 kB
Markdown
# sails.lift()
Lift a Sails app programmatically.
> This does exactly what you might be used to seeing by now when you run `sails lift`. It [loads](https://sailsjs.com/documentation/reference/application/sails-load) the app, runs its bootstrap, then starts listening for HTTP requests and WebSocket connections. Useful for building top-to-bottom integration tests that rely on HTTP requests, and for building higher-level tooling on top of Sails.
```usage
sailsApp.lift(configOverrides, function (err) {
});
```
_Or:_
+ `sailsApp.lift(function (err) {...});`
### 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`](https://sailsjs.com/documentation/reference/configuration).
##### Callback
| | Argument | Type | Details |
|---|:--------------------|---------------------|:---------------------------------------------------------------------------------|
| 1 | _err_ | ((Error?)) | An error encountered while lifting, or `undefined` if there were no errors.
### Example
```javascript
var Sails = require('sails').constructor;
var sailsApp = new Sails();
sailsApp.lift({
log: { level: 'warn' }
}, function (err) {
if (err) {
console.log('Error occurred lifting Sails app:', err);
return;
}
// --•
console.log('Sails app lifted successfully!');
});
```
### Notes
> - The difference between [`.lift()`](https://sailsjs.com/documentation/reference/application/sails-lift) and [`.load()`](https://sailsjs.com/documentation/reference/application/sails-load) is that `.lift()` takes the additional steps of (1) running the app's [bootstrap](https://sailsjs.com/documentation/reference/configuration/sails-config-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).
> - When a Sails app is fully lifted, it also emits the [`lifted` event](https://sailsjs.com/documentation/concepts/extending-sails/hooks/events).
> - With the exception of `NODE_ENV` and `PORT`, [configuration set via environment variables](https://sailsjs.com/documentation/concepts/configuration#?setting-sailsconfig-values-directly-using-environment-variables) will not automatically apply to apps started using `.lift()`, nor will options set in [`.sailsrc` files](https://sailsjs.com/documentation/concepts/configuration/using-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 `.lift()`.
<docmeta name="displayName" value="sails.lift()">
<docmeta name="pageType" value="method">