节点jbs模块和引擎
我是新的节点js和碰到这个hbs模块,看到它在这部分代码例如:
app.set('view engine', 'html'); app.engine('html', require('hbs').__express);
任何人都可以请解释什么是HBS(把手 – 但它是做什么)? 以及为什么第二行是必要的,如果第一个已经说文件将被打开为html
谢谢!
hbs是handlebars.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在内部加载它 。