在Expressjs4.0中使用dustjs模板引擎

引言

    dustjs是一款js模板,最先由我的開發維護,後來由linkin接手,發展的更加迅速,說實話js模板這塊有不少選擇,都很是優秀,和paypal的選擇同樣,最終我使用dustjs做爲個人首選模板語言。dustjs中文的文檔很是少,因此在國內的使用不是不少,這裏幾篇博文有對dustjs語法基本的介紹Dust.js語法簡介(一),Dust.js語法簡介(二),Dust.js語法簡介(三)python

    express4.0 默認的模板引擎是jade,jade 剛剛開始用的時候感受像python,有嚴格的語法格式,方便程序員養成良好的編碼習慣,可是在實際使用下就會發現這種強制,在模板端編寫邏輯語言的時候,特別在嵌套判斷的時候會有一些沒法逾越的問題,同時它的性能問題也一直別人詬病。固然你也能夠ejs或者其餘模板,這不是我要闡述的重點。git

實現

若是是現成的express項目或者使用express-genarate生成基本結構以後,在package.json 文件的 dependencies 添加三個依賴。程序員

"dustjs-helpers": "~1.3.0",
    "dustjs-linkedin": "~2.4.2",
    "adaro": "^0.1.5"

其中 dustjs-linkedin是dustjs模板自己,dustjs-helpers是一些模板的擴展方法,在dustjs官方的文檔中有說明,很是有用,你能夠添加本身的helper方法。而adaro是paypal公司提供的dustjs渲染類庫,可使用它方便的在多個模板引擎中切換,paypal的基於express的web框架krakenjs使用的就是adaro做爲模板管理的工具。github

而後在app的入口代碼處添加模板的使用狀況web

var dustjs = require('adaro');
var app = express();
// 註冊 
app.engine("dust",dustjs.dust({ cache: false }));
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'dust');

而後在views目錄下使用 添加.dust 後綴的視圖文件。 若是你編寫了本身的helper 那麼須要手動在入口文件處 require一下。express

相關文章
相關標籤/搜索