Express运用html模板的代码剖析
?express默许使用jade模板,可以配置让其支撑使用ejs或html模板。
1. 安置ejs
在项目根名目安置ejs.
npm install ejs
2、引入ejs
var ejs = require('ejs'); //我是新引入的ejs插件
3、设定html引擎
app.engine('html', ejs.__express);
设定视图引擎
app.set('view engine', 'html');
留存后重新启动效劳,即可拜访html文件。
注:在express搭建的效劳器中,html引擎没有被配置,直接增加即可;视图引擎已配置,修改配置即可。
-------------------------------------------------------------------------------------
修改的这些设定做了什么操纵?
为什么修改了视图引擎还要增添设定html引擎?
我们先看一下.engine()这个办法。
app.engine(ext, callback);
Express默许使用jade模板。假如你尝试加载 "foo.jade" 文件,Express内部会调取如下操纵。
app.engine('jade', require('jade').__express);
假如要使用其他模板引擎,如:将EJS模板映射至".html"文件:
app.engine('html', require('ejs').__express);
这行代码中,实际调取了EJS的.renderFile()办法,ejs.__express是该办法在EJS内部的另一个名字。
由于加载的模板引擎后调取的是统一个办法.__express,所以假如使用的是ejs模板,不消配置该项。
总结:使用html模板,需增添 app.engine('html', require('ejs').__express);
使用EJS模板,不消配置该项。
此时假如在views文件夹里创立index.html文件或index.ejs文件,拜访的依然是默许的index.jade文件。这是为什么呢?这里要说的就是上面提到的第二项设定app.set('view engine', 'html');
app.set(name, value);
在.set()办法的参数中,有一项是'view engine',表示没有指定文件模板格局时,默许使用的引擎插件。假如这里设定为html文件,设定路由指定文件时,只需写文件名,就会寻对应的html文件。于此,脑洞大开,试了一下在views中创立3个文件test.jade、test.ejs、test.html。路由设定如下。拜访正常!每个路由都指向对应的文件。当然这种写法是完全不被倡议也不相符实际的。
router.get('/test/',function(req, res, next){ res.render('test', {title: 'HTML'}); }); router.get('/test1/',function(req, res, next){ res.render('test.ejs', {title: 'EJS'}); }); router.get('/test2/',function(req, res, next){ res.render('test.jade', {title: 'jade}); });
以上就是本文的全部内容,但愿对大家的学习有所帮忙,更多相关内容请关注PHP中文网!
相关引荐:
在Html中使用Requirejs停止模块化开发的解析
以上就是Express使用html模板的代码剖析的具体内容,更多请关注百分百源码网其它相关文章!