Sails 核心已经迭代了几次,使其更易于维护和扩展。因此,它具有非常特殊的加载顺序,其钩子依赖于此顺序。此过程总结如下。
收集命令行、环境变量和编程配置(即传递给 sails.load
或 sails.lift
的选项)中传递的一组配置值。当通过命令行界面(通过键入 sails lift
或 sails console
)启动应用程序时,任何 .sailsrc
文件的值也将被合并到配置覆盖中。这些覆盖值将优先于下一步中遇到的任何用户配置。
除非显式禁用 userconfiguration
钩子,否则 Sails 将在下一步加载当前工作目录下 config
文件夹(和子文件夹)中的配置文件。有关用户配置的更多详细信息,请参见 概念 > 配置。来自步骤 1 的配置设置将合并到这些值之上以形成 sails.config
对象。
接下来,Sails 将加载其他钩子。 核心钩子 将首先加载,然后是用户钩子和可安装钩子。请注意,钩子通常包含自己的配置,这些配置将用作 sails.config
中的默认值。例如,如果此时未配置任何 port
设置,则将使用 http
钩子的默认值 1337。
Sails 准备核心路由器,然后在 sails
对象上发出多个事件,通知钩子它们可以安全地绑定路由。
在所有钩子初始化后,Sails 将公开全局变量(默认情况下:sails
对象、模型、服务、_
和 async
)。
当以编程方式使用
sails.load()
时,此步骤不会运行。要运行初始化步骤,请改用sails.lift()
。
sails.config.bootstrap
)sails.lift()
和 sails.load()
之间有什么区别?lift()
=== load()
+ initialize()
。它执行 load()
完成的所有操作,此外它还会启动任何附加的服务器(例如 HTTP)并记录一艘船的图片。