EJS模板引擎
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,nodejs的模板引擎有很多, EJS是比较简单和容易上手的。本文将详细介绍EJS概述EJS是一个简单高效的模板语言,通过数据和模板,可以生成HTML标记文本。可以说EJS是一个JavaScript库
千家信息网最后更新 2026年10月31日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安全错误
数据库的锁怎样保障安全
互联网科技企业
互联网金融科技
互联网科技名片
互联网科技公司经营范围
互联网的科技
科技赋能下的互联网金融
科技互联网公司装修
互联网科技有限公司图片
科技信息互联网
关于新基建和互联网科技
沃里互联网科技
新浪科技互联网
郑州华宇互联网科技
互联网科技咨询
深圳市运趣互联网科技有限公司
互联网科技博主是什么意思
西安小鹰速贷互联网科技有限公司
美国互联网科技实力
国产互联网科技公司
互联网科技大会大佬
伟宏互联网科技
互联网科技公司经营范围
互联网科技公司官网
互联网 视角下的科技创新
互联网科技股有哪些
成都玖崟互联网科技有限公司乐商圈怎么样
中国的互联网科技企业的崛起
小米互联网科技园设置
广州新华互联网科技学校电竞方面
互联网科技创新方面的资料