
我们可以看到它与是由model,view,controller组成,它们之间的调用关系与.net mvc十分类似,只不过.net mvc里的model主要是指viewmodel,而在sails里model主要是数据模型,即.net里的Entity,它是数据表的一种抽象,对于数据的持久化,sails提供了很多种,如本地文件,mysql,mongodb,redis等,对于sqlserver我们也可以找到第三方的组件。
五 通过controller的action来渲染视图
我们在.net mvc里,大家都知道视图是通过action的render方法进行渲染的,其时sails也是这样的,可以使用原生的render,也可以使用封装好的view方法,而在视图上直接使用你的action返回的对象即可。
controller/action的内容
module.exports={index: function (req, res){return res.view("test/index",{title:"大叔",engTitle:"Lind"});//return res.view("view_name",data)//view_name参数为空表示用当前的action}};view-ejs的内容
如果进入index页面可以直接写控制器名称

如果其它action希望走/test这样的路由,需要在config/route.js里进行配置,如为add这个action添加路由为/user,它的设置如
"get /user": {view: "user/add",locals: {layout: null}},
"get /test":{view:"test/index",locals:{layout:null}}
好了,到这样一个最简单的MVC的DEMO就做好了,下一节我们将引用Model,即数据持久化的机制,进行对数据表的curd操作,敬请期待...
ps:Node.js与Sails~日志机制
看到Sails的日志就会想起来log4net,确实它们在很多地方是相似的,都是采用分级别记录的方式,而sails我觉得在使用上更加方便,它不需要我们做多于的事情,直接sails.log.级别("你的日志内容")就搞定了,你不需要关心什么单例,或者持久化方式,Sails的日志只是对console.log的一种补充,可以理解为分了类之后的console.log,并有颜色的区分,呵呵。
一 我们来看一下sails.log的日志级别
| Priority | level | Log fns visible |
|---|---|---|
| 0 | silent | N/A |
| 1 | error | .error() |
| 2 | warn | .warn(), .error() |
| 3 | debug | .debug(), .warn(), .error() |
| 4 | info | .info(), .debug(), .warn(), .error() |
| 5 | verbose | .verbose(), .info(), .debug(), .warn(), .error() |
| 6 | silly | .silly(), .verbose(), .info(), .debug(), .warn(), .error() |

怎么样,sails的日志挺方便吧!