总述
因为Sails坚持约定优于配置的原理,了解如何定制初始化很重要。Sails中几乎每一个约定,都有一系列伴随的配置选项来满足需求。
Sails应用可以程序化配置,通过指定环境变量和命令行参数,通过改变本地或全局 .sailsrc文件,或者用 config/目录下的样板文件。这些应用中使用的配置在运行时可以在sails.config中使用。
标准配置文件(config/*)
许多Sails应用中的配置文件会默认生成。这些样板文件包含许多注解,它们是为了提供一种快速参考来指定写代码。
多数情况下,在sails.config对象中的顶层keys会对应应用中的一个特殊配置文件,但不管怎样配置可能被config/目录下的文件设置。
环境特定文件(config/env/*)
标准配置中的特殊设定在所有环境中都适用。如果想一些设定在特殊环境下起作用,那么可以:
- 所有保存在/config/env/下的文件都只会在环境下加载。
- 所有例如config/env/.js的文件只会在环境下加载,而且会被合并到从环境特定子文件夹下加载的顶部。
config/local.js文件
可以用config/local.js文件来配置一个Sails应用的本地环境。在此文件中的配置优于其他配置文件除了.sailsrc。因为它是要在本地使用的,不要把他加入版本控制中。(通常写到.gitignore)。此文件用于写本地数据库配置,改变在本地加载项目的端口等等。
在应用中获取sails.config
congfig对象对sails应用实例来说是可获取的。默认情况下,它在加载中是暴露给全局的,所以在应用中随处都可获取。
用环境变量设置sails.config
除了使用配置文件,当你在配置键名前加上sails_并且用__划分嵌套键名来启动sails,可以在命令行设置个性化配置。任何依照此方式格式化的环境变量都可以被解析成JSON。
这个值仅在特定的sails实例的生命周期起作用,并且会覆盖其他配置文件的所有值。
通过环境变量指定的配置不会自动生效针对以编程方式启动的sails实例。
环境变量是配置sails应用最有效的方式,其优点如下:
- 使用环境变量意味着不必担心数据库或者api的鉴权等
- 改变各种配置更简单快捷,合并他人的代码无须改动
- 根据主机配置,或许可以通过UI来管理配置