sails 控制台
以交互模式启动您的 Node.js/Sails.js 应用程序,并进入 REPL。这意味着您可以访问和使用所有模型、助手、配置、服务以及sails
应用程序实例。这对于尝试 Waterline 查询、快速管理数据和检查项目的运行时配置非常有用。
sails console
默认情况下,这仍然会启动服务器,因此您的路由可以通过 HTTP 和套接字(例如在浏览器中)访问。
sails console
接受以下选项
--dontLift
:在不启动服务器的情况下启动sails console
$ sails console
info: Starting app in interactive mode...
info: Welcome to the Sails console.
info: ( to exit, type <CTRL>+<C> )
sails>
sails console
中的全局变量Sails 在 REPL 中公开了与应用程序代码中相同的全局变量。默认情况下,您可以访问sails
应用程序实例和您的模型,以及任何其他已配置的全局变量(例如,lodash(_
)和 async(async
))。
警告
在 Node v6 之前的版本中,在 REPL 中使用
_
作为变量会导致意外行为。作为替代方案,只需将 Lodash 模块导入为变量即可。sails> var lodash = require('lodash'); sails> console.log(lodash.range(1, 5));
格式Model.action(query).exec(console.log)
console.log 非常适合查看结果。
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 }
它将数据插入数据库,这很酷。但是,您可能会注意到undefined
和null
——不用担心这些。请记住,.exec() 返回错误和数据的返回值,因此.exec(console.log)
与.exec(console.log(err, data))
的效果相同。第二种方法将删除 undefined 消息,但在新行上添加 null。您是否要键入更多内容取决于您自己。
请注意,从 Node 6 开始,对象的构造函数名称会在控制台中显示在其旁边。例如,当使用
sails-mysql
适配器时,上面提到的create
查询将输出sails> undefined RowDataPacket { name: 'Brian', password: 'sailsRules', createdAt: "2014-08-07T04:29:21.447Z", updatedAt: "2014-08-07T04:29:21.447Z", id: 1 }
在sails console
中,键入sails
以查看 Sails 属性列表。您可以使用它来了解更多关于 Sails 的信息,覆盖属性,或检查您是否禁用了全局变量。
sails> sails
|> [a lifted Sails app on port 1337]
\___/ For help, see: https://sails.js.cn/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>