1
我是新來的節點js和跨越這個HBS模塊來了,看到它在例如這部分代碼:節點JS HBS模塊和發動機
app.set('view engine', 'html');
app.engine('html', require('hbs').__express);
誰能請解釋一下什麼是哈佛商學院(車把 - 但它有什麼作用)? 爲什麼當第一已經表示,這些文件就會被打開,HTML需要第二線
謝謝!
我是新來的節點js和跨越這個HBS模塊來了,看到它在例如這部分代碼:節點JS HBS模塊和發動機
app.set('view engine', 'html');
app.engine('html', require('hbs').__express);
誰能請解釋一下什麼是哈佛商學院(車把 - 但它有什麼作用)? 爲什麼當第一已經表示,這些文件就會被打開,HTML需要第二線
謝謝!
HBS是express.js包裝爲handlebars.js JavaScript的模板引擎。 Handlebars.js是一個模板引擎,使編寫HTML代碼更容易,如果intrested你可以看看here。但handlebars.js是用於客戶端的複製(瀏覽器編譯模板),所以你需要一個包裝像hbs。
一個包裝使得可以使用例如在express.js客戶端庫,這就是HBS一樣。這有點簡化,但它解釋了原則。
在你的第二個問題,爲什麼第二行需要。那是因爲如果使用標準線:
app.set('view engine', 'hbs');
express.js將查找視圖引擎命名HBS,但在你的例子:
app.set('view engine', 'html');
app.engine('html', require('hbs').__express);
express.js dosent知道如果視圖引擎定義爲html,您必須在第二行中定義此視圖引擎,因此express.js知道要尋找什麼。如果你看看here,你可以看到,它說,快速加載它內部。
謝謝您的回答。所以第二行指定使用哪個包裝? 和例如當我寫app.set('視圖引擎','玉'); 做我也寫這樣的事情,我看到了一個例子didnt用玉做 – asasdasd 2014-12-07 13:37:15
不,你不需要做,與*玉*因爲那時玉已經告訴express.js中的情況下,要尋找什麼*視圖引擎*定義爲*玉* – NatureShade 2014-12-07 13:39:21