ejs 使用
ejs是什么
“E” 代表什么?可以表示 “可嵌入(Embedded)”,也可以是“高效(Effective)”、“优雅(Elegant)”或者是“简单(Easy)”。EJS 是一套简单的模板语言,帮你利用普通的 JavaScript 代码生成 HTML 页面。EJS 没有如何组织内容的教条;也没有再造一套迭代和控制流语法;有的只是普通的 JavaScript 代码而已。
下载依赖
yarn add ejs
我们可以新建一个ejs 文件 为ejs
并且 使用<%=name %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ejs使用</title>
</head>
<body>
<%=name %>
</body>
</html>
js 文件
const ejs = require("ejs");
const fs = require("fs");
const path = require("path");
async function renderEjs() {
// 读取HTML模板文件 path
const templateFile = await fs.readFileSync(
path.join(__dirname, `index.ejs`),
"utf-8"
);
// 开始渲染ejs模板
const result = await ejs.render(templateFile, {
name: "你好,欢迎使用ejs",
});
await fs.writeFileSync(path.join(__dirname, `./index.html`), result);
}
renderEjs();
运行js我们就会得到一个index.html 文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ejs使用</title>
</head>
<body>
你好,欢迎使用ejs
</body>
</html>
这样就算是成功了,我们就使用后端的渲染方式,得到了一个html文件
ejs基础
属性
ejs.compile(str,options)
str 字符串
option 配置
let template = ejs.compile(str, options);
template(data);
// => 输出渲染后的 HTML 字符串
ejs.render (str, data,[options)
str 字符串
data 模板中可以解析的数据
option 配置
ejs.render(str, data, options);
// => 输出渲染后的 HTML 字符串
ejs.renderFile(filename, data,options)
filename 文件路径
data 模板中可以解析的数据
ejs.renderFile(filename, data, options, function(err, str){
// str => 输出渲染后的 HTML 字符串
});
配置项
cache
缓存编译后的函数,需要指定filename
filename
被cache
参数用做键值,同时也用于 include 语句context
函数执行时的上下文环境compileDebug
当值为false
时不编译调试语句client
返回独立的编译后的函数delimiter
放在角括号中的字符,用于标记标签的开与闭debug
将生成的函数体输出_with
是否使用with() {}
结构。如果值为false
,所有局部数据将存储在locals
对象上。localsName
如果不使用with
,localsName 将作为存储局部变量的对象的名称。默认名称是locals
rmWhitespace
删除所有可安全删除的空白字符,包括开始与结尾处的空格。对于所有标签来说,它提供了一个更安全版本的-%>
标签(在一行的中间并不会剔除标签后面的换行符)。escape
为<%=
结构设置对应的转义(escape)函数。它被用于输出结果以及在生成的客户端函数中通过.toString()
输出。(默认转义 XML)。outputFunctionName
设置为代表函数名的字符串(例如'echo'
或'print'
)时,将输出脚本标签之间应该输出的内容。async
当值为true
时,EJS 将使用异步函数进行渲染。(依赖于 JS 运行环境对 async/await 是否支持)
基本语法
js文件我就直接使用上面下面的我挨个演示
<%
'脚本' 标签,用于流程控制,无输出。-
<!-- ejs模板 --> <body> <% console.log(1) %> </body> <!-- 结果 控制台打印1 <% %> 是用来执行js语法的-->
<%_
删除其前面的空格符<%=
输出数据到模板(输出是转义 HTML 标签)-
<!-- ejs模板 --> <body> <%=name %> </body> <!-- 结果 --> <body> 你好,欢迎使用ejs </body>
<%-
输出非转义的数据到模板-
<!-- ejs模板 --> <body> <%- "dfs" %> </body> <!-- 结果 --> <body> dfs </body>
<%#
注释标签,不执行、不输出内容-
<body> <%# 好玩 %> </body>
<%%
输出字符串 '<%'-
<!-- ejs模板 --> <body> <%% 好玩 %> </body> <!-- 结果 --> <body> <% 好1玩 %> </body>
%>
一般结束标签-%>
删除紧随其后的换行符_%>
将结束标签后面的空格符删除