前面的话

nodejs的模板引擎有很多, EJS是比较简单和容易上手的。本文将详细介绍EJS

概述

EJS是一个简单高效的模板语言,通过数据和模板,可以生成HTML标记文本。可以说EJS是一个JavaScript库,EJS可以同时运行在客户端和服务器端,客户端安装直接引入文件即可,服务器端用npm包安装

【安装】

ejs可以配合express框架使用,或直接在node中/浏览器中使用

$ npm install ejs

【特点】

1、快速编译和渲染

2、简单的模板标签

3、自定义标记分隔符

4、支持文本包含

5、支持浏览器端和服务器端

6、模板静态缓存

7、支持express视图系统

用法

Document

document.getElementById('div1').innerHTML = html;

方法

【ejs.compile(str,[option])】

编译字符串得到模板函数,参数如下

str:需要解析的字符串模板

option:配置选项

var template = ejs.compile('');var result = template();

console.log(result);//123

【ejs.render(str,data,[option])】

直接渲染字符串并生成html,参数如下

str:需要解析的字符串模板

data:数据

option:配置选项

var result = ejs.render('');

console.log(result);//123

两个函数包括的配置选项参数options如下:

cache 缓存编译后的函数(ejs.compile(..) ,需要 filename参数作为缓存的key

filename 用于缓存的key,和include

context 函数的执行上下文

compileDebug 输出compile的信息来跟踪调试

client 返回编译后的函数

delimiter 指这里的%debug 输出ejs.compile()得到函数的函数体

strict ejs.compile()返回的函数是否执行在严格模式

_with 是否使用 with(){..} 来访问本地变量

localsName 保存本地变量的对象名,默认为locals

rmWhitespace 移除多余空格

常用标签

【js】

所有使用 括起来的内容都会被编译成 Javascript,可以在模版文件中像写js一样Coding

//test.ejs

//test.jsvar ejs = require('ejs');var fs = require('fs');var data = fs.readFileSync('test.ejs');var result = ejs.render(data.toString());

console.log(result);//123

或者,像下面这样写

var ejs = require('ejs');var result = ejs.render('');

console.log(result);//123

【变量】

用输出变量,变量若包含 '' '&'等字符会被转义

var ejs = require('ejs');var result = ejs.render('',{a:'

123

'});

console.log(result);//<div>123</div>

如果不希望变量值的内容被转义,那就这么用输出变量

var ejs = require('ejs');var result = ejs.render('',{a:'

123

'});

console.log(result);//

123

【注释】

用来注释,不执行不输出

【include】

include 可以引用绝对路径或相对路径的模板文件

//test.ejs

//test.jsvar ejs = require('ejs');var result = ejs.render('');//throw new Error('`include` use relative path requires the \'filename\' option.');console.log(result);

由上面的提示可知,使用相对路径时,必须设置'filename'选项

//test.ejs

//test.jsvar ejs = require('ejs');var result = ejs.render('',{filename:'test.ejs'});

console.log(result);//123

php ejs,EJS模板引擎实例详解相关推荐

  1. freemaker模板引擎使用详解

    目录: 一.freemaker介绍 二.freemaker的使用 正文: 一.freemaker介绍 1.1FreeMarker概述:FreeMarker是一款模板引擎,即一种基于模板和要改变的数据, ...

  2. java h5模板引擎_详解SpringBoot+Thymeleaf 基于HTML5的现代模板引擎

    序言: Thymeleaf 是Java服务端的模板引擎,与传统的JSP不同,前者可以使用浏览器直接打开,因为可以忽略掉拓展属性,相当于打开原生页面,给前端人员也带来一定的便利.如果你已经厌倦了JSP+ ...

  3. java模板引擎 jade_Jade模板引擎使用详解

    在 Express 中调用 jade 模板引擎 jade 变量调用 if 判断 循环 Case 选择 在模板中调用其他语言 可重用的 jade 块 (Mixins) 模板包含 (Includes) 模 ...

  4. PHP模板引擎Smarty详解

    Smarty是由Monte Ohrt和Andrei Zmievski写出的PHP模板引擎.它不同于其他的模板引擎,比如FastTemplate或者patTemplate,其中主要原因就是Smarty会 ...

  5. flask中jinjia2模板引擎使用详解5

    接上文 宏 可以理解为函数,即把一些常用的模板片段做好封装,以便于重用,减少工作量和维护难度. 宏的定义很简单: {%macro xxx()%} ##这里写内容 {%endmacro%} 下面引用官方 ...

  6. java模板引擎 jade_模板引擎Jade详解

    有用的符号: | 竖杠后的字符会被原样输出 · 点表示下一级的所有字符都会被原样输出,不再被识别.(就是|的升级版,实现批量) include 表示引用外部文件短杠说明后面跟着的字符只是一段代码(与| ...

  7. Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

    Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一) 本文目录: 一.[旋转的精灵女孩]案例运行效果 二.Three.js简介 三.Three.js代码正常运行显示条件 (1)不载入 ...

  8. python装饰器函数-Python函数装饰器常见使用方法实例详解

    本文实例讲述了Python函数装饰器常见使用方法.分享给大家供大家参考,具体如下: 一.装饰器 首先,我们要了解到什么是开放封闭式原则? 软件一旦上线后,对修改源代码是封闭的,对功能的扩张是开放的,所 ...

  9. c语言二级指针有什么作用,C语言中二级指针的实例详解

    C语言中二级指针的实例详解 C语言中二级指针的实例详解 用图说明 示例代码: #include int main(int argc, const char * argv[]) { // int a = ...

最新文章

  1. maven中把依赖的JAR包一起打包(转)
  2. Objective-C MacOS的管理员权限继承
  3. lepus mysql 慢查询_天兔 -Lepus 慢查询分析平台配置
  4. 《学习Opencv》第五章 习题6
  5. 【ES6】对象、函数、数组的扩展
  6. 安卓新发布机制----app bundle
  7. 二十四种设计模式:责任链模式(Chain of Responsibility Pattern)
  8. 【安装配置】克隆方式安装Oracle数据库软件
  9. OpenCV用C画线代码示例
  10. python无限锁屏_【python】定时锁屏,保护身体
  11. [转载] 怎样彻底卸载anaconda?
  12. c语言超市,C语言超市收银系统
  13. Android应用启动画面实现
  14. WDS服务--网络安装系统(自动部署装机Windows系统)
  15. 技术前沿与经典文章22:继牛顿以后最伟大的物理学家——詹姆斯·克拉克·麦克斯韦
  16. python中pygame背景颜色为啥没生效_如何更改pygame中的背景图像?
  17. 【软件之道】亿图9.3 显示的内容与导出成图片后的内容不一致
  18. Flink DataSet API
  19. [iOS]上传图片和音视频到阿里云
  20. finally、catch和return,你真的会用吗?

热门文章

  1. IDEA配置maven,以及打开新项目默认maven配置
  2. 怎么解决EXCEL 共享变成灰色的“取消共享工作簿”
  3. 复数的函数基本运算(加,减,乘,除,对数,指数,幂,三角,反三角,双曲线)
  4. 信息安全系统设计基础第十三周学习总结
  5. Reptile:requests + 云打码平台实现 识别图片验证码登陆
  6. 【蓝桥杯省赛真题02】python正方形内切圆 青少年组蓝桥杯python编程省赛真题解析
  7. Android之获取、设置EditText的文本...
  8. uniapp项目小逻辑
  9. 2.Spring Boot 中Json的使用,Jackson注解详解
  10. 【Git】分布式的版本控制工具(一)