节点JS HBS模块和发动机
问题描述:
我是新来的节点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