首頁 > web前端 > js教程 > 主體

Node.js與Sails ~專案結構與Mvc實作及日誌機制_node.js

WBOY
發布: 2016-05-16 15:36:37
原創
1232 人瀏覽過

本文首先從sails的安裝講起接下來介紹node.js與Sails的日誌機制,小夥伴們已經迫不及待要看下文了吧,好吧。

Sails是一個Node.js的中間件架構,幫助我們很方便的構建WEB應用程序,網址:http://www.sailsjs.org/,它主要是在Express框架的基礎上發展起來的,擴充了新的功能元件,下面我們來看看安裝方法

一 安裝Sails

npm -g install sails

二 建立一個Sails的專案

sails new testProject

三 啟動專案

cd testProject
sails lift

四 專案的結構,基於MVC理念

我們可以看到它與是由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的內容

從action傳回的物件-title:


從action傳回的物件-engTitle:

呼叫的結果如下

如果進入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的日誌等級

二 開始測試我們的日誌
優先 等級 日誌 fns 可見
0 沉默 不適用
1 錯誤 <font face="NSimsun">.error()</font>
2 警告 <font face="NSimsun">.warn()</font>, <font face="NSimsun">.error()</font>
3 調試 <font face="NSimsun">.debug()</font>, <font face="NSimsun">.warn()</font>, <font face="NSimsun">.error()</font>
4 訊息 <font face="NSimsun">.info()</font>, <font face="NSimsun">.debug()</font>, <font face="NSimsun">.warn()</font>, <font face="NSimsun">.error()</font>
5 詳細 <font face="NSimsun">.verbose()</font>, <font face="NSimsun">.info()</font>, <font face="NSimsun">.debug()</font>, <font face="NSimsun">.warn()</font>                 <font face="NSimsun">.error()</font>
6 silly <font face="NSimsun">.silly()</font>, <font face="NSimsun">.verbose()</font>, <font face="NSimsun">.info()</font>, <font face="NSimsun">.debug()</font>,<font face="NSimsun">.warn()</font> <font face="NSimsun">.error()</font>

        sails.log('debug日誌!');//sails.log.debug("debug")         sails.log.error('error日誌!');         sails.log.warn('warn日誌!','request aborted.');

        sails.log.info('info日誌!');

        sails.log.verbose('verbose日誌!');
        sails.log.silly('silly日誌!');


三 設定項目的日誌級別,位於config/log.js

module.exports.log = {    level: 'info' };


四 從結果看到,日誌記錄時,只記錄比目前配置等級低的日誌內容

怎麼樣,sails的日誌蠻方便吧!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板