.defaults
defaults
機能は、オブジェクトとして、または単一の引数(下記「関数としての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
関数は、フックの設定デフォルトを表すプレーンオブジェクトを返す必要があります。