Node JS HBS模块和引擎

asa*_*asd 1 html viewengine node.js express

我是Node js的新手,遇到了这个hbs模块,并在此部分代码中看到了它,例如:

app.set('view engine', 'html');
app.engine('html', require('hbs').__express);
Run Code Online (Sandbox Code Playgroud)

谁能解释一下什么是hbs(车把-但是它有什么作用)?以及为什么如果第一行已经说过将以html格式打开文件,则需要第二行

谢谢!

Nat*_*ade 5

哈佛商学院是一个express.js包装handlebars.js JavaScript的模板引擎Handlebars.js是一个模板引擎,可简化编写html代码的过程,如果您对此感兴趣,可以在此处查看。但是handlebars.js是用于客户端编译的(浏览器会编译模板),因此您需要像hbs这样的包装器

一个包装能够使用例如在express.js客户端库,这就是哈佛商学院做。这有点简化,但是它解释了原理。

关于第二个问题,为什么需要第二行。那是因为如果您使用标准行:

app.set('view engine', 'hbs');
Run Code Online (Sandbox Code Playgroud)

express.js查找名为hbs视图引擎,但在您的示例中:

app.set('view engine', 'html');
app.engine('html', require('hbs').__express);
Run Code Online (Sandbox Code Playgroud)

在将视图引擎定义为html的情况下,express.js剂量知道要查找的内容,因此您必须在第二行中定义此视图引擎,因此express.js知道要查找的内容。如果您在这里查看,您会看到它说:Express在内部加载它