Sails 应用程序实例继承了 Node 的 EventEmitter
接口,这意味着它们既可以发射自定义事件,也可以监听自定义事件。虽然不建议你在应用程序代码中直接使用 Sails 事件(因为你的应用程序应该尽可能地保持无状态以方便扩展),但事件在扩展 Sails(通过 钩子 或 适配器)和测试环境中非常有用。
大多数 Sails 开发者从未在使用应用程序事件时遇到过用例。Sails 应用程序实例发出的事件旨在用于构建你自己的自定义钩子,虽然你可以在任何地方使用它们,但在大多数情况下你不应该。不要在你的控制器、模型、服务、配置或 Sails 应用程序中用户代码的任何其他地方使用事件(除非你正在构建一个自定义的应用程序级钩子,位于api/hooks/
目录下)。
以下是 Sails 实例最常使用的内置事件。与 Node 中的任何 EventEmitter 一样,你可以使用sails.on()
监听这些事件。
sails.on(eventName, eventHandlerFn);
没有一个事件会发出额外的信息,因此你的eventHandlerFn
不应该有任何参数。
事件名称 | 何时发出... |
---|---|
ready |
应用程序已加载且引导程序已运行,但尚未开始监听请求。 |
lifted |
应用程序已启动并开始监听请求。 |
lower |
应用程序正在降低,将停止监听请求。 |
hook:<钩子标识>:loaded |
指定标识的钩子已加载并成功运行了其initialize() 方法。 |
除了
.on()
之外,Sails 还公开了一个名为sails.after()
的有用实用函数。有关详细信息,请参阅 Sails 核心中的内联文档。