sails 特色路由 blueprints 的支持及自定义路由
blueprints 是 sails 框架特色功能
Sails中的路由,blueprint 功不可没,网上翻译成 “蓝图” , Sails的blueprint是负责指挥每一条客户端请求应该分配到服务器端的哪个Action去 ,你可以理解成路由的"调度中心" blueprint主要分为三种:RESTful routes、Shortcut routes、Action routes .
RESTful routes
当路径诸如: /:post 或者 /:post/:id的时候,blueprint会根据HTTP的动作(GET、POST、DELETE、PUT等)来分配到相应的Controller下相应的Action来处理.
例如: 一个POST请求/post会创建一篇博客, 一个DELETE请求/post/1122334455 会删除id为1122334455的博文.
Shortcut routes
这种路由主要是方便开发,请求的参数可以直接写在请求路径中, 例如 /post/create?title=node.js分享 这时会创建一篇新博客,
/user/update/1122334455?title=更改以后的标题 这时会更新id为1122334455的博客.
shortcut routes在开发环境很便利,但是在生产环境下需要关闭
Action routes
这种路由会自动的为Controller层的每一个Action创建一个路由, 例如你的Controller层有一个postController.js,里面有一个Create方法,那么请求/post/create 就会分配到postController 下的 Create 方法来响应.
自定义路由
Sails也会提供自定义的路由, 可以在config/routes.js 文件里定义自己的路由. 在 config/blueprints.js 中选择关闭或者打开blueprint提供的路由.
下面我们自定义一个路由:
module.exports.routes = {
'GET /list': 'blog.list',
'GET /blog/:id': 'blog.detail'
}
第一个路由: /list 对应 blogController 下的 list 方法.
第二个路由: /blog/:id 对应 blogController 下的 detail 方法.
