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コアのインラインドキュメントを参照してください。