[英]app.set and app.engine in Express
我正在关注Node.js教程 。
我不确定的两行是:
app.set('view engine', 'html');
app.engine('html', hbs.__express);
我检查了app.set
的文档 ,它只告诉我:
将设置名称指定给值。
但我的问题是使用它的相关性。 我用Google搜索了app.engine
地方,之前调用了app.set
。
让我知道在app.set
之前使用app.set
的app.engine
。
编辑
我找到了以下行,但我仍然不清楚,因为我第一次使用模板引擎:
但是我们可以通过使用
view engine
指令告诉Express将HTML文件视为动态,您可以在上面看到。
第一行, app.set
告诉Express使用哪个模板引擎:在这种情况下, html
。 这要求使用该名称安装模板引擎,并且此模板引擎负责扩展名为.html
文件。
如果您正在使用ejs
,例如,这一行就足够了(尽管您通常还会对app.set
进行第二次调用,该app.set
定义了查找视图文件的目录):
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
现在,假设您希望将模板引擎用于另一个文件扩展名,例如,您希望ejs
引擎不仅可以处理.ejs
文件,还可以处理.html
文件。
在这种情况下,您可以使用第二行,它告诉Express,对于具有扩展名html
文件,您希望调用hbs.__express
函数来呈现它们(因为实际上没有名为html
模板引擎)。 这实际上意味着您希望hbs
引擎呈现.html
文件。
__express
函数是Node.js下模板引擎的事实标准,它是Express兼容的:这就是它们的渲染函数应该被调用,以便Express可以轻松找到它(如果它有不同的名称,你也可以配置它) ,但这是一个不同的故事)。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.