.defaultsdefaults機能は、オブジェクトとして、または単一の引数(下記「関数としてのdefaultsの使用」を参照)を受け取ってオブジェクトを返す関数として実装できます。指定するオブジェクトは、Sailsのデフォルト設定値を提供するために使用されます。この機能を使用して、フックのデフォルト設定を指定する必要があります。たとえば、リモートサービスと通信するフックを作成する場合、デフォルトのドメインとタイムアウトの長さを指定したい場合があります。
{
myapihook: {
timeout: 5000,
domain: "www.myapi.com"
}
}
Sailsの設定ファイルでmyapihook.timeout値が指定されている場合は、その値が使用されます。それ以外の場合は、5000がデフォルトになります。
プロジェクトフックの場合プロジェクトフック、そのフックを一意に識別するキー(上記のmyapihookなど)の下でフックの設定の名前空間を指定する必要があります。インストール可能なフックの場合、特別な__configKey__キーを使用して、フックのエンドユーザーが必要に応じて設定キーを変更できるようにする必要があります。__configKey__を使用するフックのデフォルトキーは、フック名です。たとえば、次のdefaultsオブジェクトを含むsails-hooks-myawesomehookというフックを作成した場合
{
__configKey__: {
name: "Super Bob"
}
}
デフォルトでは、sails.config.myawesomehook.name値のデフォルト設定を提供します。フックのエンドユーザーがフック名をfooに上書きした場合、defaultsオブジェクトはsails.config.foo.nameのデフォルト値を提供します。
defaultsの使用プレーンオブジェクトの代わりにdefaults機能に関数を使用する場合、単一の引数(config)を受け取ります。この引数は、Sailsの設定のオーバーライドを受け取ります。設定のオーバーライドは、Sailsを起動時にコマンドラインに設定を渡すこと(例:sails lift --prod)、Sailsをプログラムで起動またはロードする際にオブジェクトを最初の引数として渡すこと(例:Sails.lift({port: 1338}, ...))、または.sailsrcファイルを使用することで行うことができます。defaults関数は、フックの設定デフォルトを表すプレーンオブジェクトを返す必要があります。