和node理念一致,sails旨在保留其核心,拆分一些功能到分解的模块中去,它有三类扩展:
在sails和Waterline中,数据库适配器使sails中的模型可以与数据库进行交互。
适配器主要是提供CURD方法。在sails中,他们分别是create(), find(), update()和destroy()。
sails应用附带一些前置响应被称为动作码。初始响应会处理像"resource not found"或者"internal server error"这些场景。如果想更改这种初始响应,或者创建新的,可以在api/responses文件夹下加入新文件。
像很多框架一样,sails可以自动化重复的工作。生成器支持sails命令行接口使之可以在sails项目里自动生成文件。
只有使用
sails new my-project
sails使用new这个生成器来生成sails项目的模板,就会产生一个在笔记(一)中的项目结构。
这种常规文件目录对框架来说是一个优势,但有时也是消耗,比如两种不同结构提交时的麻烦。
不过现在,生成器的可扩展性更好,而且在npm下更容易进入项目中进行重用。
钩子是一个node模块,向sails核心中增加功能。它定义了一些要求,一个sails中的模块要可以导入代码以及增加功能。因为它们可以从核心中分开存储,钩子使sails可以在应用和开发者之前共享代码而无须更改框架。