节点jbs模块和引擎

我是新的节点js和碰到这个hbs模块,看到它在这部分代码例如:

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

任何人都可以请解释什么是HBS(把手 – 但它是做什么)? 以及为什么第二行是必要的,如果第一个已经说文件将被打开为html

谢谢!

hbshandlebars.js javascript模板引擎express.js包装器Handlebars.js是一个模板引擎,使编写HTML代码更容易,如果感兴趣,你可以看看这里 。 但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知道要查找什么。 如果你看这里 ,你可以看到它说, Express在内部加载它