什么是 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 项目中的典型应用场景