与其他 MVC 框架一样,Sails 的设计理念是强调开发者的快乐和约定优于配置。但 Node.js 将此原则提升到了一个新的高度。在 Sails 之上构建意味着您的应用程序完全用 JavaScript 编写,这是您和您的团队已经在浏览器中使用的语言。由于您花费在上下文切换上的时间更少,因此您可以以更一致的风格编写代码,这使开发变得更高效和有趣。
Sails 包含一个强大的 ORM,Waterline,它提供了一个简单的、可正常工作的数据库访问层,无论您使用的是哪个数据库。除了大量的社区项目外,还为 MySQL、MongoDB、PostgreSQL、Redis 和本地磁盘提供了官方支持的适配器。
Sails 对熟悉的关联模型进行了新的诠释,旨在使数据建模更加实用。您可以完成您可能习惯的所有操作(一对多、多对多),但您也可以为每个模型分配多个命名的关联(例如,蛋糕可能有两个人的集合:“拥有者”和“吃货”)。更妙的是,您可以将不同的模型分配给不同的数据库,并且您的关联/连接将仍然可以正常工作,即使跨越 NoSQL 和关系边界。Sails 在将 MySQL 表与 Mongo 集合隐式/自动连接时不会遇到任何问题,反之亦然。
Sails 附带蓝图,可以帮助您在不编写任何代码的情况下启动应用程序的后端。只需运行 sails generate api dentist
,您将获得一个 API,允许您搜索、分页、排序、过滤、创建、销毁、更新和关联牙医。由于这些蓝图操作建立在与 Sails 相同的基础技术之上,因此它们也与 Websockets 和任何支持的数据库开箱即用。
在过去,添加实时/“彗星”功能意味着维护两个独立的代码库。但由于 Sails 中的请求解释器会为您转换传入的套接字消息,因此它们会自动与您 Sails 应用程序中的每个路由以及任何现有的 Express 路由/中间件兼容。参数的规范化、会话和流接口都已处理。换句话说,您编写的代码可以与 WebSockets 和 HTTP 协同工作,无需进行任何额外工作。
Sails 默认情况下以策略的形式提供基本的安全性和基于角色的访问控制,即在您的控制器和操作之前运行的简单、可重用的中间件函数。编写策略鼓励**封装**,这极大地简化了您的业务逻辑,并减少了您需要编写的代码总数。策略可与 Express/Connect 中间件互换,这意味着您可以插入流行的 npm 模块,例如 Passport。最后,就像 Sails 中的大多数东西一样,您的策略可以自动用于 WebSockets 和 HTTP。
虽然“一门语言/框架来统治所有”的承诺无疑令人着迷,但这并不总是现实。Sails 兼容任何前端策略;无论是 Angular、Backbone、iOS/ObjC、Android/Java、Windows Phone,还是其他尚未发明的工具。此外,它很容易提供相同的 API 供其他 Web 服务或开发人员社区使用。
如果您正在为浏览器构建应用程序,那么您很幸运。Sails 附带 Grunt,这意味着您的整个前端资产工作流程完全可定制,并支持所有现有的出色 Grunt 模块。这包括对 LESS、SASS、Stylus、CoffeeScript、JST、Jade、Handlebars、Dust 等的支持。当您准备投入生产时,您的资产会自动压缩和 gzip。您甚至可以编译您的静态资产并将它们推送到 CloudFront 等 CDN,以使您的应用程序加载速度更快。
更喜欢不同的工具链?了解有关 生成器 的信息。
Sails 建立在 Node.js 之上,这是一种流行的轻量级服务器端技术,允许开发人员用 JavaScript 编写速度极快、可扩展的网络应用程序。Sails 使用 Express 处理 HTTP 请求,并包装 socket.io 来管理 WebSockets。因此,如果您的应用程序需要变得非常底层,您可以访问原始的 Express 或 socket.io 对象。另一个好处是,您现有的 Express 路由可以在 Sails 应用程序中完美运行,因此迁移现有 Node 应用程序非常容易。
通过直接与 Sails 核心团队互动,消除开发工作中的障碍。旗舰专业支持可以帮助您做出技术决策,并加快问题解决速度,从而将您的开发时间缩短数天或数周。
了解有关旗舰的更多信息 或,与我们合作.