Tôi không thể nói về Meteor, nhưng tôi có thể giúp cung cấp một chút thông tin cơ bản về Sails vì tôi đã tạo ra nó.
tldr;
Sails không phải là thuốc chữa bách bệnh cho tất cả các vấn đề của web - nhưng tôi tin rằng Node.js là như vậy. Mục tiêu của Sails là cung cấp một khuôn khổ thực tế để phát triển các ứng dụng hoàn chỉnh, có thể mở rộng, khởi động và thân thiện với doanh nghiệp được xây dựng trên node.js. Tôi bắt đầu Balderdash với câu hỏi "Chúng ta có thể sử dụng Node.js cho mọi thứ không?". Những cánh buồm là câu trả lời.
Từ tài liệu mới của chúng tôi :
Tất nhiên, Sails là một web framework. Nhưng hãy lùi lại một bước. Điều đó nghĩa là gì? Đôi khi, khi chúng tôi đề cập đến "web", chúng tôi muốn nói đến "web giao diện người dùng". Chúng tôi nghĩ về các khái niệm như tiêu chuẩn web, HTML 5 hoặc CSS 3; và các khung công tác như Backbone, hoặc Angular, hoặc jQuery. Sails không phải là "loại" của một khuôn khổ web. Sails hoạt động tốt với Angular và Backbone, nhưng bạn sẽ không bao giờ sử dụng Sails thay vì các thư viện đó.
Mặt khác, đôi khi chúng ta nói về "web framework", chúng ta muốn nói đến "web back-end." Điều này gợi lên các khái niệm như REST, hoặc HTTP, hoặc WebSockets; và được xây dựng trên các công nghệ như Java, Ruby, hoặc Node.js. Khung "back-end web" giúp bạn thực hiện những việc như xây dựng API, tương tác với cơ sở dữ liệu, phân phát tệp HTML và xử lý hàng trăm nghìn người dùng đồng thời. Sails là "loại" khuôn khổ web.
Vài năm trước, tôi đã cam kết sử dụng Node.js cho mọi thứ - đó là tình yêu sét đánh . Tôi đã xây dựng Sails trên Express và Socket.io vì chúng là (và vẫn là) các mô-đun Node được thiết lập tốt nhất cho các trường hợp sử dụng tương ứng của chúng. Mã xử lý yêu cầu trong Sails tương thích với Express, với lợi thế bổ sung là hỗ trợ ngầm cho Socket.io.
Sails được thiết kế để tương thích với bất kỳ chiến lược nào bạn có để xây dựng (các) giao diện người dùng của mình trong Angular, Backbone, iOS / ObjC, Android / Java hoặc thậm chí chỉ cung cấp một API thô để sử dụng bởi một dịch vụ web khác hoặc của bạn cộng đồng nhà phát triển. Nếu bạn kết thúc việc thay đổi cách tiếp cận của mình (ví dụ: chuyển từ Backbone sang Angular) hoặc xây dựng giao diện người dùng mới hoàn toàn (ví dụ: xây dựng ứng dụng gốc Windows Phone), ứng dụng Sails của bạn sẽ vẫn hoạt động. Như bạn có thể đã biết, một số người gọi cách tiếp cận này là Kiến trúc hướng dịch vụ, hoặc SOA ( Joe McCann có một bài rất hay về chủ đề này.)
Cùng dòng, Sails duy trì các quy ước quen thuộc khác để xây dựng máy chủ web - cấu trúc MVC tiêu chuẩn, khả năng tạo API sạch và các mô-đun cốt lõi có thể mở, có thể cấu hình, có thể mở rộng và thậm chí có thể thay thế. Điều này có nghĩa là Sails có thể được tùy chỉnh để phù hợp với nhu cầu của người dùng, ở mức thấp nhất là cần thiết.
Vào năm 2013, khuôn khổ đã trải qua một số tăng trưởng vượt bậc về mức độ phổ biến và hoạt động kinh doanh tư vấn của chúng tôi đã phát triển. Phần còn lại của những người bảo trì cốt lõi và tôi đã mở rộng trọng tâm của mình vào việc phát triển phần phụ trợ nhanh chóng và đơn giản nhất có thể. Các khía cạnh liên quan của Sails như hook (plugin), kiểm tra và tài liệu đều đã trải qua một chặng đường dài trong năm qua nhờ nỗ lực của cả nhóm cốt lõi của chúng tôi và cộng đồng Sails (ngày càng mở rộng) nói chung. Có rất nhiều mục lộ trình mà chúng tôi vẫn đang thực hiện, nhưng tôi tin rằng Sails là lựa chọn tốt nhất hiện có để phát triển MVC ổn định, có thể bảo trì trên Node ngày nay. Phần còn lại của nhóm và tôi cam kết tiếp tục duy trì và phát triển tính năng của nó, và vì chúng tôi sử dụng nó cho tất cả các dự án khách hàng của mình nên nó sẽ không đi đến đâu.
Tôi cam kết đưa Sails trở thành web framework tốt nhất hiện có, nhưng không bao giờ làm Node.js phải trả giá. Đội ngũ cốt lõi và tôi không ngừng cống hiến cho việc nâng cao hệ sinh thái Node và điều đó có nghĩa là nắm lấy NPM, tận dụng các công nghệ Node hiện có và các phương pháp hay nhất, v.v. Không chỉ vì điều đó có ý nghĩa hơn, mà vì chúng tôi là nhà phát triển Node.js. Động lực cho tất cả những nỗ lực của chúng tôi là làm cho Node dễ tiếp cận hơn chứ không phải để thay thế nó. Vì vậy, nếu, trong một vũ trụ song song kỳ lạ nào đó, tôi được Faustian lựa chọn giữa việc chuyển đổi Sails sang một số ngôn ngữ khác, hoặc hoàn toàn từ bỏ Sails nhưng vẫn có thể sử dụng Node, tôi sẽ chọn thứ hai.
Tài nguyên bổ sung:
Câu hỏi thường gặp | Cánh buồm 101 | Bản gốc | Hướng dẫn đóng góp | Stackoverflow
Nhóm Google | Lộ trình | IRC: #sailsjs trên Freenode | Trạng thái xây dựng