.defaults
defaults
功能可以實作為物件或函式,該函式接受單一引數(請參閱下方的「將 defaults
用作函式」),並傳回物件。您指定的物件將用於為 Sails 提供預設配置值。您應該使用此功能來指定您的 Hook 的預設設定。例如,如果您正在建立一個與遠端服務通訊的 Hook,您可能想要提供預設網域和逾時長度
{
myapihook: {
timeout: 5000,
domain: "www.myapi.com"
}
}
如果透過 Sails 配置檔案提供了 myapihook.timeout
值,則將使用該值;否則,它將預設為 5000
。
對於專案 Hook,您應該將您的 Hook 的配置命名在一個唯一識別該 Hook 的鍵之下(例如,上面的 myapihook
)。對於可安裝的 Hook,您應該使用特殊的 __configKey__
鍵,以允許您的 Hook 的終端使用者在必要時變更配置鍵。使用 __configKey__
的 Hook 的預設鍵是 Hook 名稱。例如,如果您建立一個名為 sails-hooks-myawesomehook
的 Hook,其中包含以下 defaults
物件
{
__configKey__: {
name: "Super Bob"
}
}
那麼,預設情況下,它將為 sails.config.myawesomehook.name
值提供預設設定。如果 Hook 的終端使用者將 Hook 名稱覆寫為 foo
,則 defaults
物件將為 sails.config.foo.name
提供預設值。
defaults
用作函式如果您為 defaults
功能指定一個函式而不是純物件,它會接受單一引數 (config
),該引數接收任何 Sails 配置覆寫。可以透過在啟動 Sails 時將設定傳遞到命令列(例如 sails lift --prod
)、在以程式設計方式啟動或載入 Sails 時傳遞物件作為第一個引數(例如 Sails.lift({port: 1338}, ...)
)或使用 .sailsrc
檔案來進行配置覆寫。defaults
函式應傳回一個純物件,表示您的 Hook 的配置預設值。