Edit Page

sails console

Lift your Node.js/Sails.js app in interactive mode, and enter the REPL. This means you can access and use all of your models, helpers, configuration, services, and the sails app instance. Useful for trying out Waterline queries, quickly managing your data, and checking out your project's runtime configuration.

sails console

By default, this still lifts the server, so your routes will be accessible via HTTP and sockets (e.g. in a browser).

Usage

#

sails console takes the following options:

Example

#
$ sails console

info: Starting app in interactive mode...

info: Welcome to the Sails console.
info: ( to exit, type <CTRL>+<C> )

sails>

Global variables in sails console

#

Sails exposes the same global variables in the REPL as it does in your app code. By default, you have access to the sails app instance and your models, as well as any of your other configured globals (for example, lodash (_) and async (async)).

Warning

In Node versions earlier than v6, using _ as a variable in the REPL will cause unexpected behavior. As an alternative, simply import the Lodash module as a variable:

sails> var lodash = require('lodash');
sails> console.log(lodash.range(1, 5));

More examples

#
Waterline
#

The format Model.action(query).exec(console.log) console.log is good for seeing the results.

sails> User.create({name: 'Brian', password: 'sailsRules'}).fetch().exec(console.log)
undefined
sails> undefined { name: 'Brian',
  password: 'sailsRules',
  createdAt: "2014-08-07T04:29:21.447Z",
  updatedAt: "2014-08-07T04:29:21.447Z",
  id: 1 }

It inserts it into the database, which is pretty cool. However, you might be noticing the undefined and null—don't worry about those. Remember that the .exec() returns errors and data for values, so .exec(console.log) has the same effect as .exec(console.log(err, data)). The second method will remove the undefined message, but add null on a new line. Whether you want to type more is up to you.

Note that starting with Node 6, an object’s constructor name is displayed next to it in the console. For example, when using the sails-mysql adapter, the create query mentioned above would output:

sails> undefined RowDataPacket { name: 'Brian',
  password: 'sailsRules',
  createdAt: "2014-08-07T04:29:21.447Z",
  updatedAt: "2014-08-07T04:29:21.447Z",
  id: 1 }
Exposing Sails
#

In sails console, type sails to view a list of Sails properties. You can use this to learn more about Sails, override properties, or check to see if you disabled globals.

sails> sails
  |>   [a lifted Sails app on port 1337]
\___/  For help, see: https://sailsjs.com/documentation/concepts/

Tip: Use `sails.config` to access your app's runtime configuration.

1 Models:
User

1 Controllers:
UserController

20 Hooks:
moduleloader,logger,request,orm,views,blueprints,responses,controllers,sockets,p
ubsub,policies,services,csrf,cors,i18n,userconfig,session,grunt,http,projecthooks

sails>

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