.defaults
defaults
功能可以实现为一个对象,也可以实现为一个函数,该函数接受一个参数(请参见下面的“将defaults
用作函数”),并返回一个对象。您指定的该对象将用于为 Sails 提供默认配置值。您应该使用此功能为您的钩子指定默认设置。例如,如果您正在创建一个与远程服务通信的钩子,则可能需要提供默认域和超时时长。
{
myapihook: {
timeout: 5000,
domain: "www.myapi.com"
}
}
如果通过 Sails 配置文件提供了myapihook.timeout
值,则将使用该值;否则,它将默认为5000
。
对于项目钩子,您应该在唯一标识该钩子的键下为您的钩子配置命名空间(例如,上面的myapihook
)。对于可安装钩子,您应该使用特殊的__configKey__
键,以允许您的钩子的最终用户在必要时更改配置键。使用__configKey__
的钩子的默认键是钩子名称。例如,如果您创建一个名为sails-hooks-myawesomehook
的钩子,其中包含以下defaults
对象
{
__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
函数应返回一个表示钩子配置默认值的普通对象。