アプリでプロジェクトフックを使用するには、まずapi/hooksフォルダが存在しない場合は作成します。次に、プロジェクトフックを作成するか、使用したいフックのフォルダをapi/hooksにコピーします。
アプリでインストール可能なフックを使用するには、インストールしたいフックのパッケージ名でnpm installを実行します(例:npm install sails-hook-autoreload)。また、作成したインストール可能なフックフォルダをアプリのnode_modulesフォルダに直接コピーまたはリンクすることもできます。
フックが公開するメソッドはすべて、sails.hooks[<フック名>]オブジェクトで利用できます。たとえば、sails-hook-emailフックはsails.hooks.email.send()メソッドを提供します(sails-hook-プレフィックスは削除されることに注意してください)。フックがどのメソッドを提供するかを確認するには、フックのドキュメントを参照してください。
インストール可能なフックをアプリに追加したら、config/local.js、config/env/development.jsなどの通常のSails設定ファイル、または自分で作成したカスタム設定ファイルを使用して設定できます。フック設定は通常、フックの名前の下に名前空間化され、sails-hook-プレフィックスは削除されます。たとえば、sails-hook-emailのfrom設定はsails.config.email.fromとして利用できます。インストール可能なフックのドキュメントには、利用可能な設定オプションが記載されているはずです。
まれに、Sailsがインストール可能なフックに使用する名前を変更したり、フックが使用する設定キーを変更する必要がある場合があります。これは、インストール可能なフックと同じ名前のプロジェクトフックがすでにある場合や、別の目的ですでに設定キーを使用している場合に発生する可能性があります。これらの競合を避けるために、Sailsはsails.config.installedHooks.<フックID>設定オプションを提供しています。フックIDは、常にフックがインストールされているフォルダの名前です。
// config/installedHooks.js
module.exports.installedHooks = {
"sails-hook-email": {
// load the hook into sails.hooks.emailHook instead of sails.hooks.email
"name": "emailHook",
// configure the hook using sails.config.emailSettings instead of sails.config.email
"configKey": "emailSettings"
}
};
注:
config/installedHooks.jsファイルは自分で作成する必要がある場合があります。