2014-12-07 77 views
1

我是新来的节点js和跨越这个HBS模块来了,看到它在例如这部分代码:节点JS HBS模块和发动机

app.set('view engine', 'html'); 
app.engine('html', require('hbs').__express); 

谁能请解释一下什么是哈佛商学院(车把 - 但它有什么作用)? 为什么当第一已经表示,这些文件就会被打开,HTML需要第二线

谢谢!

回答

3

HBSexpress.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,你可以看到,它说,快速加载它内部

+0

谢谢您的回答。所以第二行指定使用哪个包装? 和例如当我写app.set('视图引擎','玉'); 做我也写这样的事情,我看到了一个例子didnt用玉做 – asasdasd 2014-12-07 13:37:15

+0

不,你不需要做,与*玉*因为那时玉已经告诉express.js中的情况下,要寻找什么*视图引擎*定义为*玉* – NatureShade 2014-12-07 13:39:21