Ejs模版引擎介绍,什么是模版引擎,什么是ejs,ejs基本用法

628 阅读2分钟

** EJS 模板引擎**,让你彻底搞明白什么是模板引擎、什么是 EJS、怎么用、语法、最佳实践等等:


📚 一、什么是模板引擎?

模板引擎是前后端分离之前的一种服务器端“渲染技术”。它的主要作用是:

将 HTML 页面和后端传递过来的数据结合起来,生成真正能展示给用户的 HTML 页面。

🛠️ 工作原理:

  1. 编写模板页面(包含 HTML 和变量占位符)
  2. 后端把数据传进去
  3. 模板引擎渲染成真正的 HTML 返回给浏览器

🎯 二、什么是 EJS?

EJS(Embedded JavaScript Templates) 是 Node.js 中使用广泛的模板引擎之一,和 HTML 长得很像,但支持 JavaScript 嵌入。

EJS 特点:

特点描述
JS 语法嵌入可以写原生 JavaScript 表达式和语句
HTML 格式友好看起来就是 HTML,不需要特殊缩进
灵活易学初学者也能很快上手

🚀 三、Express 中使用 EJS(从零开始)

1️⃣ 安装依赖

npm install express ejs

2️⃣ 创建基本目录结构

project/
├── views/         ← EJS 页面模板放这里
│   └── index.ejs
├── app.js         ← 主程序

3️⃣ 配置 Express 使用 EJS(app.js)

const express = require('express');
const app = express();
const port = 3000;

// 设置 EJS 为视图引擎
app.set('view engine', 'ejs');

// 设置视图文件目录(默认就是 'views',可省略)
app.set('views', './views');

// 路由
app.get('/', (req, res) => {
  res.render('index', {
    title: '欢迎使用 EJS',
    username: '小红',
    skills: ['JavaScript', 'Vue', 'Node.js']
  });
});

app.listen(port, () => {
  console.log(`服务已启动:http://localhost:${port}`);
});

4️⃣ 创建 EJS 页面 views/index.ejs

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title><%= title %></title>
</head>
<body>
  <h1>你好,<%= username %> 👋</h1>

  <p>你掌握的技能有:</p>
  <ul>
    <% skills.forEach(skill => { %>
      <li><%= skill %></li>
    <% }) %>
  </ul>
</body>
</html>

🧪 四、EJS 语法大全(常用)

写法说明
<%= variable %>输出变量并自动转义(安全)
<%- html %>原样输出 HTML,不转义(慎用)
<% code %>执行 JS 代码(无输出)
<% if (...) { %> ... <% } %>条件判断
<% array.forEach(...) %>循环输出

📝 示例补充

<!-- 输出变量 -->
<p>用户名:<%= username %></p>

<!-- 条件语句 -->
<% if (username === 'admin') { %>
  <p>欢迎管理员!</p>
<% } else { %>
  <p>普通用户</p>
<% } %>

<!-- 输出 HTML(注意 XSS) -->
<%- '<strong>这是粗体</strong>' %>

🧩 五、模板复用(Layout)

虽然 EJS 本身不内置布局系统,但你可以用 <%- include('header') %> 来实现“模板片段复用”。

示例:

1. 创建公共头部:views/partials/header.ejs

<header>
  <h1>网站导航</h1>
  <hr/>
</header>

2. 主模板中引入

<!DOCTYPE html>
<html>
<head>
  <title><%= title %></title>
</head>
<body>

  <%- include('partials/header') %>

  <p>主内容区</p>

</body>
</html>

📦 六、文件结构推荐(实战项目)

project/
├── views/
│   ├── partials/
│   │   └── header.ejs
│   ├── index.ejs
│   └── user.ejs
├── public/               ← 静态资源
│   └── css/style.css
├── routes/
│   └── user.js
├── app.js

💬 七、EJS 与前端分离框架的区别

项目EJS(SSR)Vue/React(SPA)
渲染方式服务端渲染客户端渲染
首屏加载✅ 快❌ 需加载 JS
SEO 支持✅ 好❌ 差(需 SSR)
动态交互性❌ 差(需刷新)✅ 很强
场景适合简单后台、CMS大型复杂前端应用

✅ 八、总结

  • EJS 是轻量、高效、易学的模板引擎。
  • 它适合用在中小型后台项目、管理平台。
  • 不建议用 EJS 做前端复杂交互(如 Vue/React 更合适)。