EJS模板引擎
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,nodejs的模板引擎有很多, EJS是比较简单和容易上手的。本文将详细介绍EJS概述EJS是一个简单高效的模板语言,通过数据和模板,可以生成HTML标记文本。可以说EJS是一个JavaScript库
千家信息网最后更新 2025年12月01日EJS模板引擎
nodejs的模板引擎有很多, EJS是比较简单和容易上手的。本文将详细介绍EJS
概述
EJS是一个简单高效的模板语言,通过数据和模板,可以生成HTML标记文本。可以说EJS是一个JavaScript库,EJS可以同时运行在客户端和服务器端,客户端安装直接引入文件即可,服务器端用npm包安装
【安装】
ejs可以配合express框架使用,或直接在node中/浏览器中使用
$ npm install ejs
【特点】
1、快速编译和渲染
2、简单的模板标签
3、自定义标记分隔符
4、支持文本包含
5、支持浏览器端和服务器端
6、模板静态缓存
7、支持express视图系统
用法
Document
方法
【ejs.compile(str,[option])】
编译字符串得到模板函数,参数如下
str:需要解析的字符串模板option:配置选项
var template = ejs.compile('<%=123 %>');var result = template();console.log(result);//123【ejs.render(str,data,[option])】
直接渲染字符串并生成html,参数如下
str:需要解析的字符串模板data:数据option:配置选项
var result = ejs.render('<%=123 %>');console.log(result);//123两个函数包括的配置选项参数options如下:
cache 缓存编译后的函数(ejs.compile(..) ,需要 filename参数作为缓存的keyfilename 用于缓存的key,和includecontext 函数的执行上下文compileDebug 输出compile的信息来跟踪调试client 返回编译后的函数delimiter <% .. %> 指这里的%debug 输出ejs.compile()得到函数的函数体strict ejs.compile()返回的函数是否执行在严格模式_with 是否使用 with(){..} 来访问本地变量localsName 保存本地变量的对象名,默认为localsrmWhitespace 移除多余空格常用标签
【js】
所有使用 <% %> 括起来的内容都会被编译成 Javascript,可以在模版文件中像写js一样Coding
//test.ejs<% var a = 123 %><% console.log(a); %>//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('<% var a = 123 %><%console.log(a); %>');console.log(result);//123【变量】
用<%=...%>输出变量,变量若包含 '<' '>' '&'等字符会被转义
var ejs = require('ejs');var result = ejs.render('<%=a%>',{a:'123'});console.log(result);//<div>123</div>如果不希望变量值的内容被转义,那就这么用<%-... %>输出变量
var ejs = require('ejs');var result = ejs.render('<%-a%>',{a:'123'});console.log(result);//123【注释】
用<%# some comments %>来注释,不执行不输出
【include】
include 可以引用绝对路径或相对路径的模板文件
//test.ejs<% var a = 123 %><% console.log(a); %>//test.jsvar ejs = require('ejs');var result = ejs.render('<% include test.ejs %>');//throw new Error('`include` use relative path requires the \'filename\' option.');console.log(result);由上面的提示可知,使用相对路径时,必须设置'filename'选项
//test.ejs<% var a = 123 %><% console.log(a); %>//test.jsvar ejs = require('ejs');var result = ejs.render('<% include test.ejs %>',{filename:'test.ejs'});console.log(result);//123
模板
函数
变量
字符
编译
输出
参数
字符串
缓存
文件
服务器
路径
支持
服务
配置
内容
客户
客户端
数据
文本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发经理职责
景创互联网科技有限公司
画软件开发最简单的画法
vdi服务器无法连接服务器
服务器释放内存
东昌府区网络安全知识竞赛
驰云服务器怎么样
计算机网络技术答案张建忠
组织结构 数据库设计
oracle数据库的包报错
市值最大的网络安全公司
软件开发的高级技术员
网络安全员技师培训
软件开发毕业设计文档
互联网科技新评
四川业务流程外贸软件开发
杭州市互联网科技
高通量测序原始数据的数据库
c 访问数据库层代码
关于网络安全全的手抄报
通信和网络技术试题
电子商务关于网络安全的论文
数据网络技术就业方向
网络安全手抄报简单又好画警察
网络安全工作宜宾市
正定软件开发多少钱
戴尔730服务器多重
文明实践开展网络安全宣传周
抚松软件开发
云平台软件开发公司