0

0

EJS模板引擎实例详解

零下一度

零下一度

发布时间:2017-06-24 14:51:54

|

4012人浏览过

|

来源于php中文网

原创

前面的话

  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])】

Javashop
Javashop

Javashop是基于 Java技术构建的开源网店系统,其特色是组件机制和模板引擎让扩展变得简单,可有第三方组件可供选择,降低二次开发成本。同时 Javashop推出 “ 第三方开发者合作共赢计划 ”,依托计时软件有效计算开发费用,期望在实现双赢的基础上走出我们国人自己开源模式 ,详见 :Javashop第三方开发者合作共赢计划Javashop v3.0 升级日志:一、机制1. 完善组件机制,更易

下载

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

str:需要解析的字符串模板
data:数据
option:配置选项
var result = ejs.render('<%=123 %>');
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<% 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);//zuojiankuohaophpcndivyoujiankuohaophpcn123zuojiankuohaophpcn/divyoujiankuohaophpcn

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

var ejs = require('ejs');var result = ejs.render('<%-a%>',{a:'
123
'}); console.log(result);//
123

【注释】

  用来注释,不执行不输出

【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

  

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

32

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

23

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

16

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

5

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

6

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

268

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

195

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

170

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

85

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

相关下载

更多

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 4.5万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 2.6万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号