EJS模板引擎
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,nodejs的模板引擎有很多, EJS是比较简单和容易上手的。本文将详细介绍EJS概述EJS是一个简单高效的模板语言,通过数据和模板,可以生成HTML标记文本。可以说EJS是一个JavaScript库
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
举办网络安全宣传周校园日活动
2017年两会网络安全
电子商务软件开发流程
国内网络安全厂商排名2020
数据库的最大空间1
网络安全防御那个强
瑞信互联网科技有限公司
崂山区定制软件开发哪家好
小程序js 连接阿里云数据库
oracle数据库用户拷贝
数字能源产品线的软件开发部
erp软件开发有哪些流程
hbase怎么读取数据库
杭州无线网络技术信息推荐
ci 数据库操作
软件开发新项目的上线吗
车辆段多措并举推进网络安全
软件开发项目技术目标
云端服务器作用
中山市卡迅网络技术有限公司
网络安全小学知识竞赛
阿里旺旺聊天记录服务器
coc数据库查询
php 使用代理服务器
中国核心期刊数据库 遴选
服务器互联网
2021年网络安全周宣传标语
软件开发销售报价死
甩手工具箱服务器不可用
网络安全小报 百度文库