Express下ejs的视图模板引擎的建立
写在前面
由于Express升级到4.0,将ejs的用法忽略,改为用户自定义形式,所以要引入库index.js作为引擎,来支持ejs的模板引擎(点击下载)。
首先是建立一个名字叫nodeitem,引擎为ejs的express模板
$ express -e nodeitem
$ cd nodeitem
自动安装所指定的依赖
$ npm install
$ ls
把index.js文件上传到expand_modules/ejs里面去,上传文件可安装lrzsz
$ tree expand_modules/
$ vim app.js
因为我使用的的express3,我的app.js不是入口文件,退出vim
$ cat package.json
我的入口文件是 ./bin/www,想要修改也不难,只需要在app.js文件里添加如下代码即可
app.set("port",process.env.PORT || 3000);
http.createServer(app).listen(app.get("port"),function (){
console.log("this is"+app.get("port"));
})
$ node app.js
建立模板
$ vim app.js
//引入引擎
var engine = require("./expand_modules/ejs/index.js");
//改变中间量及参数
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.set("port",process.env.PORT || 2000);
app.use(favicon());
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(app.router);
//在app中调用engine函数改造引擎,模板引擎在显示层的名字叫layout.ejs
app.engine("ejs",engine);
app.locals._layoutFile="layout";
//路由控制w
app.get('/', routes.index);
app.get("/abc",routes.abc);
app.get("/u/:user",routes.user);
app.get("/post",routes.post)
app.get("/reg",routes.reg);
app.get("/doReg",routes.doReg);
app.get("/login",routes.login);
app.get("/doLogin",routes.doLogin);
app.get("/logout",routes.logout);
app.get('/users', users.list);
路由选择
$ cd routes && vim index.js
查看显示层
$ cd views && ls
$ vim layout.js
ejs文件类似于html文件,只需要在html文件的<body>标签里面加入自己设置的模板元素即可。下面是一个例子,最关键的是要在<body>标签里面加入<%-body%> 为了显示原始HTML内容
$ vim login.ejs
只需要把你想要添加到layout模板里面的html文件的<body>标签内容写入ejs文件即可 模板layout中<%-body%> 会自动解析为html,并予以显示。上面文件只是一个例子。
写在最后
ejs引擎书写方式特别像html,但是他有一个缺点就是不支持模板继承,想要模板继承可以使用jada引擎。要想知道两者更加详细的区别,这是飞机票。
Express下ejs的视图模板引擎的建立的更多相关文章
- 【转】在Express项目中使用Handlebars模板引擎
原文:http://fraserxu.me/2013/09/12/Using-Handlebarsjs-with-Expressjs/ 最近在用Expressjs做一个项目,前后端都用它来完成.自己之 ...
- Express开发实例(2) —— Jade模板引擎
前一篇通过helloworld,简单介绍了Express中的开发,本篇继续深入的学习express的模板. 关于Jade的用法,网上有很多,本篇参考:Jade语法 安装相关模块 在实验代码前,应该先安 ...
- 后台模板引擎ejs与前台模板引擎artTemplate的简单介绍
动态网页是指前端页面当中的数据内容来源于后台数据库,前端的html代码会随着后台数据的变化而变化,是动态生成的.制作动态网页有两种方式,一种方式是在后台拿到前端的html模板,利用后台模板引擎(如ej ...
- Express 中配置使用 art-template模板引擎
art-template 官网 https://aui.github.io/art-template/ 安装: npm install --save art-template npm install ...
- 视图模板引擎——Vue【双向绑定】原理剖析
首先我们来了解一下MVC.MVP.MVMM这三大架构模式在前端角度上的理解. MVC分别是 Model(模型).View(视图).Controller(控制器)三个模块.View(视图层)最主要完成前 ...
- express中ejs模板引擎
1.在 app.js 中通过以下两个语句设置了 引擎类型 和页面模板的位置: app.set('views', __dirname + '/views'); app.set('view engine' ...
- 前端笔记之NodeJS(三)Express&ejs模板引擎&请求识别
一.Express框架 1.1基本使用 创建http服务器特别麻烦,express框架解决了这个的问题. Express在node界的地位,就相当于jQuery在DOM界的地位.jQuery的核心就是 ...
- express搭建web服务器、路由、get、post请求、multer上传文件、EJS模板引擎的使用
express官网 postman工具下载地址 multer的npm文档地址 express模板引擎怎么使用 地址:http://www.expressjs.com.cn/guide/using- ...
- Express全系列教程之(十一):渲染ejs模板引擎
一.简介 相比于jade模板引擎,ejs对原HTML语言就未作出结构上的改变,只不过在其交互数据方面做出了些许修改,相比于jade更加简单易用.因此其学习成本是很低的.您也可参考ejs官网:https ...
随机推荐
- 性能测试必备知识(11)- 怎么理解内存中的Buffer和Cache?
做性能测试的必备知识系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1806772.html 缓存 从 free 命令可以看到,缓存其实就 ...
- offer收割机也有方法论
秋招的战火就像这夏天的温度一样炙热,陆陆续续很多学弟学妹问我秋招的注意事项,作为温暖型大叔的我此刻必须出场了. 看仔细了,接下来龙叔就把这offer收割机的秘密都告诉你们. 如果你还没点关注的话,记得 ...
- Python 读取word中表格数据、读取word修改并保存、替换word中词汇、读取word中每段内容,读取一段话中相同样式内容,理解Document中run
from docx import Document path = r'D:\pywork\12' # word信息表所在文件夹 w = Document(path + '/' + 'word信息表.d ...
- eclipse及idea使用问题记录(为了方便github同步,重新用Markdown写了一篇)
使用eclipse或idea的时候会遇到各式各样的小问题,解决方案其实网上也大都搜得到,但是下次遇到的时候总是想不起来如何解决,还要花费时间再次查资料.所以以后把遇到的问题都记录一下. @ 目录 Ec ...
- 7.hbase shell命令 cmd
$HADOOP_USER_NAME #创建命名空间create_namespace 'bd1902' #展示所有命名空间 list_namespace #删除命名空间,The namespace mu ...
- Maven通解
参考博文:通俗理解maven 该篇文章篇幅很长,大概的思路如下 maven的介绍,初步认识,获取jar包的三个关键属性 --> 介绍仓库(获取的jar包从何而来)-->用命令行管理ma ...
- 拿捏了!ConcurrentHashMap!
概述 本文将对JDK8中 ConcurrentHashMap 源码进行一定程度的解读.解读主要分为六个部分:主要属性与相关内部类介绍.构造函数.put过程.扩容过程.size过程.get过程.与JDK ...
- vue路由守卫+cookie实现页面跳转时验证用户是否登录----(二)设置路由守卫
上一篇我们已经封装好了cookie方法,登录成功之后也可以吧用户信息存到cookie中,接下来需要在router/index.js中引入一下cookie.js文件 然后继续添加以下代码 /* * be ...
- 在JAVASCRIPT中,为什么document.getElementById不可以再全局(函数外)使用?
今天在使用JavaScript使用document.ElementById("ID")的时候,发现var x = document.getElementById("chi ...
- Istio安全-授权(实操三)
Istio安全-授权 目录 Istio安全-授权 授权HTTP流量 为使用HTTP流量的负载配置访问控制 卸载 授权TCP流量 部署 配置TCP负载的访问控制 卸载 使用JWT进行授权 部署 使用有效 ...