什么是 EJS 模板?
EJS(Embedded JavaScript)是一种简单灵活的模板引擎,常用于 Node.js 项目中生成动态 HTML 页面。其核心特点包括:
- ⚙️ 嵌入式 JavaScript 语法,支持
<% %>
和<%= %>
两种表达式 - 📁 支持模板继承(extends)和局部模板(include)
- 🧾 与 Express 框架深度集成,适合快速开发
[!TIP] 想深入了解 Express 与 EJS 的配合使用?可前往 [/node_js/express_ejs] 查看配套教程
快速入门示例
// app.js
const express = require('express');
const app = express();
app.set('view engine', 'ejs');
app.get('/', (req, res) => {
res.render('index', { title: 'EJS 模板示例', data: [1,2,3] });
});
EJS 语法详解
基本语法
<% %>
:执行 JavaScript 代码(无输出)<%= %>
:输出变量值(自动转义 HTML)<%- %>
:输出变量值(不转义,原始内容)
控制结构
<% if (user) { %>
<p>欢迎回来,<%= user.name %></p>
<% } else { %>
<p>请登录</p>
<% } %>
模板继承
<!-- layout.ejs -->
<html>
<head><%= head %></head>
<body>
<%- body %>
</body>
</html>
常见应用场景
- 🌐 动态生成网页内容
- 🧾 数据展示与格式化
- 📁 项目结构组织(如 views 目录)
[!IMPORTANT] 使用 EJS 时注意:避免直接输出未经处理的用户输入,建议使用
<%-
时配合escape
处理
优势与局限
优点 | 局限 |
---|---|
语法简洁 | 功能较基础 |
与 Node.js 深度整合 | 复杂逻辑建议用其他模板引擎 |
[!LINK] 查看更多 Node.js 模板解决方案:[/node_js/template_engines]
EJS_Template_Example
图示:EJS 模板在 Node.js 项目中的典型应用场景