Sails Framework Instroduction

Post on 08-May-2015

1.336 views 1 download

description

This is an introduction to Sails, a MVC framework to Node.js. It's especially good for building chat, realtime dashboards, or multiplayer games.

Transcript of Sails Framework Instroduction

IntroductionSails is a MVC architecture for Node.js, like Django to Python or Ruby on Rails to Ruby, it has support for the more modern, data-oriented style of web app development.

It's especially good for building APIs, single apps/sites, realtime features like chat, analytics dashboard and multiplayer games.

Running

brew install nodesudo npm -g install sailssails new <appName>sails lift

What Sails can doSocket.io / Realtime / WebSocketsSupports transport agnostic routing, which allows your controllers/policies to automatically handle Socket.io / WebSocket messages. In the past, you'd have to maintain a separate code base to make that happen.

PerformanceBuilt-in support for Redis session store, and Redis MQ for reverse pubsub routing.

ExpressSupports the existing ecosystem of Express middleware.

REST BlueprintsAutomatically generated JSON API for manipulating models Automatic route bindings for your controller actions

Lightweight ORMSails provides an ORM (Object Relational Mapping) called Waterline.Waterline not suports databases and associations yet, but are on the immediate todo list.

PoliciesThey can be chained together to protec or preprocess requests for controllers.E.g. authentication logic, role-based access control, file storage quotas.

Support for GruntGrunt was added in Sails v0.9. Modifying the Gruntfile you can easy add support for your favorite template engine or css/js preprocessor.

Asset bundlingSails bundles support for LESS and JST Templates. Modifying your app's Gruntfile, you can add support for SASS, Handlebars, CoffeeScript, Stylus, TypeScript, etc.

MVC structureModelhas the same philosophy from other frameworks like Rails, Django, Zend.

Vieware EJS by default, but you can set Jade, etc

Controller are just Express Middleware.

Products app example Create Product Model:sails generate product

This command line create 2 files: /api/controllers/ProductController.js/api/models/Product.js

Now open/edit the Product.js model.

Product Model

Product ControllerAfter a controller has been defined, Sails will automatically map out routes to give you easy access.

get /:controller/:id?post /:controllerput /:controller/:iddelete /:controller/:id

/:controller/find/:id?/:controller/create/:controller/update/:id/:controller/destroy/:id

Now create some products:http://localhost:1337/product/create/?name=Shoe1&description=Desc&price=20.30

Seeing product realtime list1. Edit app.js file to list all products:

2. Create products in other browser window and see the console.log in the http://localhost:1337:

Next steps

1. Add MySQL support;

2. Assciate Product with Category model;

3. Choose AngularJS or Backbone.js as front-end framework.

Currents status

Community is growing fast!It can be a great full stack framework to production use soon.

3.456 starts and 339 forks on

Active IRC channel;

Google Group.

Thanks!

Leo Berdu@leoberdu

Resourceshttp://sailsjs.orghttps://groups.google.com/forum/#!forum/sailsjshttp://nodejs.org/https://github.com/joyent/node/wiki/modules#wiki-web-frameworks-full