[英]app.set and app.engine in Express
我正在關注Node.js教程 。
我不確定的兩行是:
app.set('view engine', 'html');
app.engine('html', hbs.__express);
我檢查了app.set
的文檔 ,它只告訴我:
將設置名稱指定給值。
但我的問題是使用它的相關性。 我用Google搜索了app.engine
地方,之前調用了app.set
。
讓我知道在app.set
之前使用app.set
的app.engine
。
編輯
我找到了以下行,但我仍然不清楚,因為我第一次使用模板引擎:
但是我們可以通過使用
view engine
指令告訴Express將HTML文件視為動態,您可以在上面看到。
第一行, app.set
告訴Express使用哪個模板引擎:在這種情況下, html
。 這要求使用該名稱安裝模板引擎,並且此模板引擎負責擴展名為.html
文件。
如果您正在使用ejs
,例如,這一行就足夠了(盡管您通常還會對app.set
進行第二次調用,該app.set
定義了查找視圖文件的目錄):
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
現在,假設您希望將模板引擎用於另一個文件擴展名,例如,您希望ejs
引擎不僅可以處理.ejs
文件,還可以處理.html
文件。
在這種情況下,您可以使用第二行,它告訴Express,對於具有擴展名html
文件,您希望調用hbs.__express
函數來呈現它們(因為實際上沒有名為html
模板引擎)。 這實際上意味着您希望hbs
引擎呈現.html
文件。
__express
函數是Node.js下模板引擎的事實標准,它是Express兼容的:這就是它們的渲染函數應該被調用,以便Express可以輕松找到它(如果它有不同的名稱,你也可以配置它) ,但這是一個不同的故事)。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.