摘要:一些與一起使用的流行模板引擎是和,應(yīng)用程序生成器使用作為其默認(rèn)值,但它也支持其他幾個(gè)。有關(guān)可與一起使用的模板引擎列表,請(qǐng)參閱模板引擎,另請(qǐng)參閱比較模板引擎等。,使用的模板引擎,例如,要使用模板引擎。
使用模板引擎
模板引擎使你可以在應(yīng)用程序中使用靜態(tài)模板文件,在運(yùn)行時(shí),模板引擎用實(shí)際值替換模板文件中的變量,并將模板轉(zhuǎn)換為發(fā)送到客戶端的HTML文件,這種方法可以更輕松地設(shè)計(jì)HTML頁面。
一些與Express一起使用的流行模板引擎是Pug、Mustache和EJS,Express應(yīng)用程序生成器使用Jade作為其默認(rèn)值,但它也支持其他幾個(gè)。
有關(guān)可與Express一起使用的模板引擎列表,請(qǐng)參閱模板引擎(Express wiki),另請(qǐng)參閱比較JavaScript模板引擎:Jade、Moustache、Dust等。
注意:Jade已更名為Pug,你可以繼續(xù)在你的應(yīng)用中使用Jade,它可以正常工作,但是,如果你想要模板引擎的最新更新,則必須在應(yīng)用程序中將Jade替換為Pug。
要渲染模板文件,請(qǐng)?jiān)O(shè)置以下應(yīng)用程序設(shè)置屬性,在由生成器創(chuàng)建的默認(rèn)應(yīng)用程序app.js中設(shè)置:
views,模板文件所在的目錄,例如:app.set("views", "./views"),默認(rèn)為應(yīng)用程序根目錄中的views目錄。
view engine,使用的模板引擎,例如,要使用Pug模板引擎:app.set("view engine", "pug")。
然后安裝相應(yīng)的模板引擎npm包,例如安裝Pug:
$ npm install pug --save
兼容Express的模板引擎(如Jade和Pug)導(dǎo)出名為__express(filePath, options, callback)的函數(shù),該函數(shù)由res.render()函數(shù)調(diào)用以渲染模板代碼。某些模板引擎不遵循此約定,Consolidate.js庫遵循此約定,映射所有流行的Node.js模板引擎,因此可以在Express中無縫工作。
設(shè)置視圖引擎后,你不必在應(yīng)用程序中指定引擎或加載模板引擎模塊,Express在內(nèi)部加載模塊,如下所示(對(duì)于上面的示例)。
app.set("view engine", "pug")
在views目錄中創(chuàng)建一個(gè)名為index.pug的Pug模板文件,其中包含以下內(nèi)容:
html head title= title body h1= message
然后創(chuàng)建一個(gè)路由來渲染index.pug文件,如果未設(shè)置view engine屬性,則必須指定視圖文件的擴(kuò)展名,否則,你可以省略它。
app.get("/", function (req, res) { res.render("index", { title: "Hey", message: "Hello there!" }) })
當(dāng)你向主頁發(fā)出請(qǐng)求時(shí),index.pug文件將渲染為HTML。
注意:視圖引擎緩存不會(huì)緩存模板輸出的內(nèi)容,只緩存底層模板本身,即使緩存已打開,仍會(huì)每個(gè)請(qǐng)求重新渲染視圖。
要了解有關(guān)模板引擎如何在Express中工作的更多信息,請(qǐng)參閱:“為Express開發(fā)模板引擎”。
上一篇:使用中間件 下一篇:錯(cuò)誤處理文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/100473.html
摘要:常見問題我該如何構(gòu)建我的應(yīng)用程序這個(gè)問題沒有明確的答案,答案取決于你的應(yīng)用程序規(guī)模和所涉及的團(tuán)隊(duì),為了盡可能靈活,在結(jié)構(gòu)方面沒有做出任何假設(shè)。請(qǐng)參閱,了解以模型為中心的基于的框架。 常見問題 我該如何構(gòu)建我的應(yīng)用程序? 這個(gè)問題沒有明確的答案,答案取決于你的應(yīng)用程序規(guī)模和所涉及的團(tuán)隊(duì),為了盡可能靈活,Express在結(jié)構(gòu)方面沒有做出任何假設(shè)。 在你喜歡的任何目錄結(jié)構(gòu)中,路由和其他特定于...
摘要:接下來在控制臺(tái)跑起來看看瀏覽器訪問成功輸出到這里項(xiàng)目就已經(jīng)初步搭建起來了。到這里整個(gè)項(xiàng)目已經(jīng)搭建起來了,大功告成。引用模塊引入路由模塊設(shè)置視圖文件目錄設(shè)置模板引擎為設(shè)置模板引擎為配置靜態(tài)資源目錄第一次寫文章,請(qǐng)多加指教。 俗話說好記性不如爛筆頭,在看了兩天文檔后,在這里準(zhǔn)備把自己學(xué)到的東西寫成文章記錄下來。 安裝全局模塊 npm install -g express express-g...
摘要:前言要做一個(gè)全沾的工程師,對(duì)于后端和數(shù)據(jù)庫來說,即使不認(rèn)識(shí)也要見個(gè)面的?;玖私獾母拍罹秃?,主要是安裝上數(shù)據(jù)庫,并進(jìn)行簡單的增刪操作。 前言:要做一個(gè)全沾的工程師,對(duì)于后端和數(shù)據(jù)庫來說,即使不認(rèn)識(shí)也要見個(gè)面的。本文給的例子很簡單,也貼出來源碼,只要一步步下來,就可以跑起來啦~~~ 思考一個(gè)需求:做一個(gè)登錄頁面,自己搭建服務(wù)和數(shù)據(jù)庫,將用戶輸入的登錄信息保存到數(shù)據(jù)庫如何完成呢:首先選擇...
摘要:而框架中最常用的兩個(gè)視圖引擎是和。實(shí)際上這些上下文對(duì)象就是會(huì)在視圖中使用到的變量。其實(shí)視圖緩存并不是緩存視圖實(shí)際上它緩存的視圖路徑。根據(jù)默認(rèn)視圖引擎將缺少拓展名的視圖文件補(bǔ)充完整。實(shí)際上存在由不同組織維護(hù)的兩個(gè)不同版本的。 showImg(https://segmentfault.com/img/remote/1460000010821004);前面的內(nèi)容大都是關(guān)于 Express 框...
摘要:文檔基于的快速開放極簡主義的框架,是一個(gè)最小且靈活的應(yīng)用程序框架,為和移動(dòng)應(yīng)用程序提供了一組強(qiáng)大的功能。借助無數(shù)的實(shí)用程序方法和中間件,你可以快速輕松地創(chuàng)建強(qiáng)大的。提供了一層輕薄的基本應(yīng)用程序功能,而不會(huì)隱藏你熟悉和喜愛的功能。 Express 文檔 基于Node.js的快速、開放、極簡主義的Web框架,Express是一個(gè)最小且靈活的Node.js Web應(yīng)用程序框架,為Web和移動(dòng)...
閱讀 1826·2021-10-09 09:44
閱讀 2699·2021-09-22 15:38
閱讀 2496·2021-09-09 09:33
閱讀 696·2021-09-07 09:58
閱讀 1827·2021-09-02 15:41
閱讀 2510·2019-08-30 15:55
閱讀 1801·2019-08-30 15:55
閱讀 543·2019-08-30 15:44