express的模板直接使用HTML

https://blog.csdn.net/qpanhappy/article/details/53322614

版权声明:本文为博主原创文章,未经博主允许不得转载。    https://blog.csdn.net/qpanHappy/article/details/53322614
express的模板直接使用HTML
一般情况下,express默认使用ejs或者jade(pug)模板,但是如果我们需要使用其它模板应该怎么办呢,比如直接使用html。其实只要我们了解像ejs模板在express中作用的原理就明白了。 
在express中如果我们要使用ejs模板,一般会这样写:

app.set("view engine", "ejs");

这句话的作用是告诉express要用安装的ejs包来渲染.ejs后缀的文件。事实上当express在试图渲染一个.ejs文件时,会在内部执行这样一条语句:

app.engine('ejs', require('ejs')._express);

那些没有提供 .__express 的或者你想渲染一个文件的扩展名与模板引擎默认的不一致的时候,也可以用这个方法。 比如你想用EJS模板引擎来处理 “.html” 后缀的文件:

app.engine('html', require('ejs').renderFile);

这个例子中EJS提供了一个.renderFile() 方法和Express预期的格式: (path, options, callback)一致, 可以在内部给这个方法取一个别名ejs.__express,这样你就可以使用”.ejs” 扩展而不需要做任何改动。 
有些模板引擎没有遵循这种转换, 这里有一个小项目consolidate.js 专门把所有的node流行的模板引擎进行了包装,这样它们在Express内部看起来就一样了。

var engines = require('consolidate');
app.engine('haml', engines.haml);
app.engine('html', engines.mustache);
app.set('view engine', 'html');

这样就可以直接使用html了。
--------------------- 
作者:qpanHappy 
来源:CSDN 
原文:https://blog.csdn.net/qpanhappy/article/details/53322614 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/MyNameIsXiaoLai/article/details/85256729