18910140161

Express使用html模板的代码分析

顺晟科技

2021-06-16 10:29:25

205

Express默认使用jade模板,可以配置为支持使用ejs或html模板。

1.安装ejs

在项目的根目录下安装ejs。

npminstallejs

2.介绍ejs

varejs=require(' ejs ');//我是新推出的ejs插件

3.设置html引擎

app.engine('html ',ejs。_ _快递);

设置视图引擎

app.set('viewengine ',' html ');

保存并重新启动服务后,您可以访问html文件。

注意:express搭建的服务器中,html引擎没有配置,可以直接添加;视图引擎已经配置,因此您可以修改配置。

-

修改后的设置做了什么?

为什么修改视图引擎后需要添加html引擎?

我们来看看方法。发动机()优先。

app.engine(ext,callback);

Express默认使用玉石模板。如果您试图加载“foo.jade”文件,将在Express内部调用以下操作。

app.engine('jade ',require('jade ')。_ _快递);

如果您想使用其他模板引擎,例如将EJS模板映射到'。“html”文件:

app.engine('html ',require('ejs ')。_ _快递);

在这一行代码中。EJS的renderFile()方法实际上是调用,而EJS。__express是这个方法在ejs中的另一个名称。

因为同样的方法。__express在加载的模板引擎之后调用,如果使用了ejs模板,则无需配置此项。

总结:要使用html模板,需要添加app。引擎(' html ',要求(' ejs ')。_ _快递);

使用EJS模板而不配置此项。

此时,如果在视图文件夹中创建了index.html文件或index.ejs文件,将仍然可以访问默认的index.jade文件。这是为什么?这里我想说的是上面提到的第二个设置app.set('viewengine ',' html ');

app.set(名称、值);

的参数之一。set()方法为“viewengine”,表示在未指定文件模板格式时默认使用的引擎插件。如果设置为html文件,在设置路线指定文件时,只需要写文件名,就会找到对应的html文件。在这一点上,我打开了我的思维,并试图在视图中创建三个文件,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 });

});

本文转载自中文网站

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航