Express使用html模板的详细代码


Posted in Javascript onSeptember 18, 2017

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});
});

官方API:http://www.expressjs.com.cn/4x/api.html#app.engine

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
使用JS进行目录上传(相当于批量上传)
Dec 05 Javascript
javascript学习笔记(十二) RegExp类型介绍
Jun 20 Javascript
Jquery选择子控件"大于号"和" "区别介绍及使用示例
Jun 25 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
Aug 02 Javascript
JavaScript使用function定义对象并调用的方法
Mar 23 Javascript
js/jquery判断浏览器类型的方法小结
May 12 Javascript
Js利用Canvas实现图片压缩功能
Sep 13 Javascript
详解Vue快速零配置的打包工具——parcel
Jan 16 Javascript
vue路由懒加载的实现方法
Mar 12 Javascript
详解搭建es6+devServer简单开发环境
Sep 25 Javascript
jQuery实现全选、反选和不选功能的方法详解
Dec 04 jQuery
JavaScript实现动态生成表格
Aug 02 Javascript
Mongoose中document与object的区别示例详解
Sep 18 #Javascript
新手vue构建单页面应用实例代码
Sep 18 #Javascript
angularjs路由传值$routeParams详解
Sep 05 #Javascript
vue-ajax小封装实例
Sep 18 #Javascript
信息滚动效果的实例讲解
Sep 18 #Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
Sep 18 #Javascript
angularjs实现猜数字大小功能
May 20 #Javascript
You might like
用PHP连接Oracle for NT 远程数据库
2006/10/09 PHP
php防盗链的常用方法小结
2010/07/02 PHP
PHP实现微信发红包程序
2015/08/24 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
如何利用预加载优化Laravel Model查询详解
2017/08/11 PHP
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
javascript 隔行换色函数代码
2010/10/24 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
使用javascript做的一个随机点名程序
2014/02/13 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
2016/05/31 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
基于JavaScript定位当前的地理位置
2017/04/11 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
jQuery插件artDialog.js使用与关闭方法示例
2017/10/09 jQuery
[03:49]DOTA2英雄基础教程 光之守卫
2014/01/14 DOTA
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
python实现2014火车票查询代码分享
2014/01/10 Python
Python、Javascript中的闭包比较
2015/02/04 Python
Python2.x中文乱码问题解决方法
2015/06/02 Python
python 处理dataframe中的时间字段方法
2018/04/10 Python
Python requests模块session代码实例
2020/04/14 Python
CSS3中媒体查询结合rem布局适配手机屏幕
2019/06/10 HTML / CSS
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
小学生中国梦演讲稿
2014/04/23 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
公安个人四风问题对照检查及整改措施
2014/10/28 职场文书
会计电算化实训报告
2014/11/04 职场文书
运动会加油稿30字
2015/07/21 职场文书
MySQL中order by的使用详情
2021/11/17 MySQL
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫
Python利用capstone实现反汇编
2022/04/06 Python