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)并记录一艘船的图片。