簡體   English   中英

Express中的app.set和app.engine

[英]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.setapp.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM