sails framework instroduction

12

Upload: leo-berdu

Post on 08-May-2015

1.334 views

Category:

Technology


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

Page 1: Sails Framework Instroduction
Page 2: 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

Page 3: Sails Framework Instroduction

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

Page 4: Sails Framework Instroduction

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.

Page 5: Sails Framework Instroduction

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.

Page 6: Sails Framework Instroduction

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.

Page 7: Sails Framework Instroduction

Product Model

Page 8: Sails Framework Instroduction

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

Page 9: Sails Framework Instroduction

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:

Page 10: Sails Framework Instroduction

Next steps

1. Add MySQL support;

2. Assciate Product with Category model;

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

Page 11: Sails Framework Instroduction

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.

Page 12: Sails Framework Instroduction

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