'''Sails.js''' (or '''Sails''')<ref name=":1">{{Cite book|url=https://books.google.com/books?id=hZifBAAAQBAJ&lpg=PT455&dq=Sails.js&pg=PT455#v=onepage&q=Sails.js&f=false|title=Web Development with MongoDB and Node.js|last=Krol|first=Jason|publisher=Packt|year=2014|isbn=9781783987313|___location=|pages=PT455|via=Google Books (Preview)}}</ref> is a [[Model–view–controller|Model-View-Controller]] (MVC) [[web application framework]] developed atop the [[Node.js]] environment,<ref name=":0">{{Cite book|url=https://books.google.com/books?id=01hLDAAAQBAJ|title=Sails.js Essentials|last=Shahid|first=Shaikh|publisher=Packt|year=2016|isbn=9781783554546|___location=Birmingham, UK|pages=|oclc=944986529|via=Google Books (Preview)}}</ref>{{Rp|1, 19}} released as [[free and open-source software]] under the [[MIT License]].<ref name="SailsJS" /><ref name="NPM">{{cite web|url=https://www.npmjs.com/package/sails|title=sails|access-date=21 July 2017|publisher=npm, inc.}}</ref> It is designed to make it easy to build custom, enterprise-grade Node.js [[web application]]s and [[API]]s.<ref name="SailsJS">{{cite web|url=https://sailsjs.com|title=Sails.js {{!}} Realtime MVC Framework for Node.js|publisher=The Sails Company|access-date=21 July 2017}}</ref><ref>{{cite web|last=Rajput|first=Mehul|title=Top Reasons Why Sails.js Is The Best Node.js Web Framework|url=http://www.mindinventory.com/blog/top-reasons-why-sails-js-is-the-best-node-js-web-framework/|website=mindinvenory|publisher=Mindinventory|accessdateaccess-date=22 July 2017|date=12 December 2016}}</ref> Emulating the MVC architecture of other frameworks, like [[Ruby on Rails]],<ref name=":0" />{{Rp|19}} it offers similar pattern and familiarity, reducing the cognitive burden when switching between other frameworks/languages.
== Features ==
Sails.js offers a host of features and attributes. Because it is built on Node.js and [[Express.js]],<ref name="toptal">{{cite web|last1=Yang|first1=Chuoxian|title=Comparison Of Four Popular Node.js Frameworks {{!}} Toptal|url=https://www.toptal.com/nodejs/nodejs-frameworks-comparison|website=toptal|publisher=Toptal, LLC|accessdateaccess-date=22 July 2017}}</ref> it enables applications to be built with 100% JavaScript. This not only includes models, views, and controllers; but also configuration files and adapters (e.g., database).
Like Ruby on Rails,<ref name=":1" /> Sails.js provides an [[Object-relational mapping]] interface, using [[Waterline.js]], which abstracts the database interaction.<ref name="toptal"/> This enables a uniform API regardless of the underlying database being used.<ref name="WaterlineJS">{{cite web|url=http://waterlinejs.org/|title=Waterline.js home page}}</ref>