Node.js與Sails~項目結(jie)構與Mvc實(shi)現(xian)
Sails是一個Node.js的中間(jian)件(jian)架構,幫助我們(men)很方便的構建WEB應(ying)用程序,網址://www.sailsjs.org/,它主要(yao)是在Express框架的基(ji)礎上(shang)發展(zhan)起來的,擴展(zhan)了新的功能組件(jian),下面我們(men)來看一下安裝方法(fa)
一 安裝Sails
npm -g install sails
二 建立一個Sails的項目
sails new testProject
三 啟動項目
cd testProject
sails lift
四(si) 項目的結構,基于MVC理念
我們(men)可(ke)以看到它(ta)與(yu)是(shi)由model,view,controller組成,它(ta)們(men)之(zhi)間的調(diao)用關系與(yu).net mvc十分(fen)類似(si),只不過.net mvc里(li)的model主(zhu)要是(shi)指viewmodel,而在sails里(li)model主(zhu)要是(shi)數(shu)據模型,即(ji).net里(li)的Entity,它(ta)是(shi)數(shu)據表(biao)的一種抽象,對(dui)于(yu)數(shu)據的持久化(hua),sails提供了(le)很多種,如本(ben)地文件,mysql,mongodb,redis等,對(dui)于(yu)sqlserver我們(men)也可(ke)以找到第三方的組件。
五 通過(guo)controller的action來渲(xuan)染(ran)視圖
我(wo)們在(zai).net mvc里,大家都知道視圖(tu)是通過(guo)action的(de)render方法進(jin)行渲染的(de),其時sails也是這樣的(de),可(ke)以使(shi)用原(yuan)生的(de)render,也可(ke)以使(shi)用封裝好的(de)view方法,而在(zai)視圖(tu)上直接(jie)使(shi)用你的(de)action返回的(de)對象即可(ke)。
controller/action的(de)內容
module.exports={ index: function (req, res){ return res.view("test/index",{title:"大叔(shu)",engTitle:"Lind"}); //return res.view("view_name",data)//view_name參數為(wei)空表示用(yong)當(dang)前的action } };
view-ejs的內(nei)容
<p>從action返回的對象-title:<%=title%></p> <p>從action返回的對象-engTitle:<%=engTitle%></p>
調用的結果如下
如果進入index頁面可以(yi)直接寫(xie)控(kong)制器(qi)名稱
如(ru)果(guo)其它action希望走/test這(zhe)樣的路由(you),需要在(zai)config/route.js里進行配置,如(ru)為(wei)add這(zhe)個(ge)action添加(jia)路由(you)為(wei)/user,它的設(she)置如(ru)
'get /user': {view: 'user/add',locals: {layout: null}},
'get /test':{view:'test/index',locals:{layout:null}}
好(hao)了,到這(zhe)樣一個最簡(jian)單的MVC的DEMO就做(zuo)好(hao)了,下(xia)一節我們將引(yin)用Model,即數據持久化的機制,進行對數據表的curd操(cao)作,敬(jing)請期(qi)待...