KEMBAR78
MVC way to introduce Sails.js - node.js framework | PDF
MVC way to introduce sails.js - Caesar Chi
http://sailsjs.org/#!
Monday, May 12, 14
Web, MVC
Monday, May 12, 14
Monday, May 12, 14
Monday, May 12, 14
Rails like framework, but extends node.js feature
Monday, May 12, 14
http://sailsjs.org/
Monday, May 12, 14
Sails.js
•Auto Routing
•Express base
•Scaffolding
•Socket.io support
•Restful blueprint
Monday, May 12, 14
Support
and
Enhance
Monday, May 12, 14
Monday, May 12, 14
Blueprint default support, you do not key in CRUD
https://github.com/hankejh/blueprint
Monday, May 12, 14
Model module, use Waterline
https://github.com/balderdashy/waterline
Monday, May 12, 14
Route Setting
is
*ucking EASY
Monday, May 12, 14
Scaffolding
create
controllers
models
in 1 second
Monday, May 12, 14
Blueprint built-in
Restful service in
1 second
Monday, May 12, 14
How to start?
Monday, May 12, 14
npm install -g sails
cli
Monday, May 12, 14
Quick start
Monday, May 12, 14
run app
• cd project
• node app
• sails lift
Monday, May 12, 14
Sails.js command line
Monday, May 12, 14
Sails generate
Controller
Model
action ...
cli
Monday, May 12, 14
Generate
sails generate
controller
model
name
blueprints include
cli
Monday, May 12, 14
Generate(cli)
• Model
• path:
• /api/model
• Controller
• Path:
• /api/controller
Monday, May 12, 14
Generate(cli)
• Model
• path:
• /api/model
• Controller
• Path:
• /api/controllerModel, Controller will be global object
Monday, May 12, 14
Controller
http://sailsjs.org/#!documentation/controllers
Monday, May 12, 14
sails generate controller Comment create destroy tag like
cli
Monday, May 12, 14
sails generate controller Comment create destroy tag like
cli
Request, Response
Monday, May 12, 14
CommentController.js
Monday, May 12, 14
CommentController.js
This is Model object
Monday, May 12, 14
Controller
• /api/controllers/
• http://sailsjs.org/#!documentation/controllers
Monday, May 12, 14
View
Monday, May 12, 14
View
• View -> as a render function
• Path:
• /view/...
• Support
• ejs (default)
• jade
Monday, May 12, 14
View
• View -> as a render function
• Path:
• /view/...
• Support
• ejs (default)
• jade
ejs (default)
Monday, May 12, 14
http://embeddedjs.com/
Monday, May 12, 14
Monday, May 12, 14
html layout
html body (content)
Monday, May 12, 14
view path
response.view()
controller
Monday, May 12, 14
parameters
response.view()
controller
Monday, May 12, 14
View Partials
Monday, May 12, 14
Response view
• res.view() = res.render();
• res.send({ some: 'json' });
• res.json({ user: 'tj' });
• res.redirect('/', 301);
Monday, May 12, 14
Route
http://sailsjs.org/#!documentation/routes
Monday, May 12, 14
Route
• Route
• Path
• /api/routes.js
Monday, May 12, 14
Route (default)
default follow blueprint
URL route
Monday, May 12, 14
Route (default)
default follow blueprint
Controller name
Controller action (function)
Monday, May 12, 14
view point to route
URL route View route
Monday, May 12, 14
Route(default)
Monday, May 12, 14
Route and action
config/Route.js
Monday, May 12, 14
Model
Monday, May 12, 14
Model
• file path -> api/models
• Capital naming
• Set schema and rule.
• ORM like
• you can use multi-adapter
Monday, May 12, 14
example, api/models/Post.js
Monday, May 12, 14
example, api/models/Post.js
defined
key
&
attribute
Monday, May 12, 14
example, controller call Post model
Monday, May 12, 14
example, controller call Post model
model name
Monday, May 12, 14
example, controller call Post model
model
behavior
Monday, May 12, 14
example, controller call Post model
new data
Monday, May 12, 14
example, controller call Post model
success
callback
&
response
Monday, May 12, 14
Model document
http://sailsjs.org/#!documentation/models
Monday, May 12, 14
Controller, Model, Service, will be Global object
Monday, May 12, 14
MVC way example
https://github.com/nodejs-tw/example-week3
Monday, May 12, 14
@clonncd
Monday, May 12, 14
Sails.js
• sails.js version is 0.9.x
• the model part and service, we will talk in
another chapter.
• keep coding, be passions.
Monday, May 12, 14

MVC way to introduce Sails.js - node.js framework