Express 文檔(使用模板引擎)

使用模板引擎

模板引擎使你能夠在應用程序中使用靜態模板文件,在運行時,模板引擎用實際值替換模板文件中的變量,並將模板轉換爲發送到客戶端的HTML文件,這種方法能夠更輕鬆地設計HTML頁面。javascript

一些與Express一塊兒使用的流行模板引擎是PugMustacheEJSExpress應用程序生成器使用Jade做爲其默認值,但它也支持其餘幾個。html

有關可與Express一塊兒使用的模板引擎列表,請參閱模板引擎(Express wiki),另請參閱比較JavaScript模板引擎:Jade、Moustache、Dust等java

注意:Jade已改名爲 Pug,你能夠繼續在你的應用中使用Jade,它能夠正常工做,可是,若是你想要模板引擎的最新更新,則必須在應用程序中將Jade替換爲Pug。

要渲染模板文件,請設置如下應用程序設置屬性,在由生成器建立的默認應用程序app.js中設置:git

  • views,模板文件所在的目錄,例如:app.set('views', './views'),默認爲應用程序根目錄中的views目錄。
  • view engine,使用的模板引擎,例如,要使用Pug模板引擎:app.set('view engine', 'pug')

而後安裝相應的模板引擎npm包,例如安裝Pug:github

$ npm install pug --save
兼容Express的模板引擎(如Jade和Pug)導出名爲 __express(filePath, options, callback)的函數,該函數由 res.render()函數調用以渲染模板代碼。

某些模板引擎不遵循此約定,Consolidate.js庫遵循此約定,映射全部流行的Node.js模板引擎,所以能夠在Express中無縫工做。express

設置視圖引擎後,你沒必要在應用程序中指定引擎或加載模板引擎模塊,Express在內部加載模塊,以下所示(對於上面的示例)。npm

app.set('view engine', 'pug')

views目錄中建立一個名爲index.pug的Pug模板文件,其中包含如下內容:segmentfault

html
  head
    title= title
  body
    h1= message

而後建立一個路由來渲染index.pug文件,若是未設置view engine屬性,則必須指定視圖文件的擴展名,不然,你能夠省略它。api

app.get('/', function (req, res) {
  res.render('index', { title: 'Hey', message: 'Hello there!' })
})

當你向主頁發出請求時,index.pug文件將渲染爲HTML。緩存

注意:視圖引擎緩存不會緩存模板輸出的內容,只緩存底層模板自己,即便緩存已打開,仍會每一個請求從新渲染視圖。

要了解有關模板引擎如何在Express中工做的更多信息,請參閱:「爲Express開發模板引擎」。


上一篇:使用中間件

下一篇:錯誤處理

相關文章
相關標籤/搜索