当前位置: 首页 > news >正文

广西建设工程质检安全网站/网站建设推广公司

广西建设工程质检安全网站,网站建设推广公司,宣传片制作公司价钱多少,影视网站设计Node.js 项目中使用 EJS 实现 列表渲染 和 条件渲染,并结合实际代码示例,帮你更好地理解 EJS 的用法。 🧑‍💻 一、在 Node.js 中使用 EJS 我们已经知道如何在 Express 中使用 EJS,下面我们回顾一下如何在 Node.js 项…

Node.js 项目中使用 EJS 实现 列表渲染条件渲染,并结合实际代码示例,帮你更好地理解 EJS 的用法。


🧑‍💻 一、在 Node.js 中使用 EJS

我们已经知道如何在 Express 中使用 EJS,下面我们回顾一下如何在 Node.js 项目中配置 EJS 作为模板引擎:

1️⃣ 安装依赖

npm install express ejs

2️⃣ 创建项目结构

project/
├── views/
│   ├── index.ejs
│   ├── partials/
│   │   └── header.ejs
├── app.js

3️⃣ 配置 Express 使用 EJS

// app.js
const express = require('express');
const app = express();
const port = 3000;// 设置 EJS 为视图引擎
app.set('view engine', 'ejs');// 设置视图文件目录
app.set('views', './views');// 路由定义
app.get('/', (req, res) => {res.render('index', {title: 'EJS 列表和条件渲染示例',users: [{ name: '小红', age: 25 },{ name: '小明', age: 30 },{ name: '小李', age: 35 }]});
});// 启动服务器
app.listen(port, () => {console.log(`服务已启动:http://localhost:${port}`);
});

🖼️ 二、EJS 列表渲染

在 EJS 中,我们使用 <% for ... %> 来遍历数组或对象列表。

示例:渲染用户列表

1️⃣ 创建视图:views/index.ejs
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title><%= title %></title>
</head>
<body><h1>用户列表</h1><ul><% users.forEach(user => { %><li><%= user.name %> - <%= user.age %> 岁</li><% }) %></ul></body>
</html>
2️⃣ 渲染数据:app.js 中传递数据(如上例)
app.get('/', (req, res) => {res.render('index', {title: 'EJS 列表和条件渲染示例',users: [{ name: '小红', age: 25 },{ name: '小明', age: 30 },{ name: '小李', age: 35 }]});
});

📝 三、EJS 条件渲染

EJS 允许你在模板中使用常见的 JavaScript 语法,如 if 语句来实现条件渲染。

示例:条件渲染用户状态

1️⃣ 创建视图:views/index.ejs
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title><%= title %></title>
</head>
<body><h1>用户状态</h1><ul><% users.forEach(user => { %><li><%= user.name %> - <% if (user.age >= 30) { %><span>年纪较大</span><% } else { %><span>年纪较轻</span><% } %></li><% }) %></ul></body>
</html>
2️⃣ 渲染数据:app.js 中传递数据(如上例)
app.get('/', (req, res) => {res.render('index', {title: 'EJS 条件渲染示例',users: [{ name: '小红', age: 25 },{ name: '小明', age: 30 },{ name: '小李', age: 35 }]});
});

💡 四、EJS 语法回顾与扩展

1. 输出变量:

  • <%= %>:输出变量并转义(防止 XSS 攻击)

    <%= username %>  <!-- 输出并转义 -->
    
  • <%- %>:输出原始 HTML,不转义

    <%- content %>  <!-- 直接输出 HTML -->
    

2. 条件判断:

  • <% if ... %>:条件判断
    <% if (age >= 18) { %><p>成人</p>
    <% } else { %><p>未成年</p>
    <% } %>
    

3. 循环:

  • <% for ... %>:循环遍历

    <% for (let i = 0; i < list.length; i++) { %><li><%= list[i] %></li>
    <% } %>
    
  • forEach

    <% users.forEach(user => { %><li><%= user.name %> - <%= user.age %></li>
    <% }) %>
    

🗂️ 五、项目最佳实践

项目结构:

project/
├── views/
│   ├── partials/
│   │   └── header.ejs
│   ├── index.ejs
│   └── about.ejs
├── public/
│   └── css/
│       └── style.css
├── routes/
│   ├── index.js
│   └── user.js
├── app.js

路由模块化

// routes/index.js
const express = require('express');
const router = express.Router();router.get('/', (req, res) => {res.render('index', {title: '首页',users: [{ name: '小红', age: 25 },{ name: '小明', age: 30 }]});
});module.exports = router;
// app.js
const express = require('express');
const app = express();
const indexRouter = require('./routes/index');app.set('view engine', 'ejs');
app.set('views', './views');app.use('/', indexRouter);app.listen(3000, () => {console.log('Server running at http://localhost:3000');
});

💡 六、总结

  • 列表渲染:使用 forEachfor 循环来渲染数组或对象。
  • 条件渲染:通过 ifelse 语句来根据条件显示不同内容。
  • EJS 优势:简单、易学、灵活,可以结合 Express 渲染动态页面。
http://www.whsansanxincailiao.cn/news/30343152.html

相关文章:

  • 网站建设后台实训体会/网店推广实训系统
  • abbs建筑网站/品牌推广和营销推广
  • 网站维护与建设ppt/佛山做seo推广公司
  • 织梦网站标题被改/产品推广平台排行榜
  • 响应式网站建设案例/年度关键词
  • 手机网站需要多少钱/网络运营推广是做什么的
  • 如何建设淘宝客网站/网络优化工具
  • 奥鹏作业代做靠谱的网站/百度移动端点赞排名软件
  • 表单大师做网站/靠谱的推广平台有哪些
  • wdcp 网站日志/b站免费推广app大全
  • 海西州公司网站建设/河南网站关键词优化代理
  • 网页制作与网站建设文档/优化大师win10
  • 济宁专业网站制作公司/品牌宣传策划方案
  • 兰州医院网站建设/培训网站
  • 阜宁县城乡建设局新的官方网站/广告推广文案
  • 网站的整体结构/网站收录优化
  • 网站顶部图片素材/seo快速培训
  • 现在帮别人做网站赚钱不/站长工具pr值查询
  • 企业管理软件销售/移动网站推广如何优化
  • 长沙市住房和城乡建设局网站/网络营销策略的制定
  • 建设btob网站需要多少资金/免费收录网站
  • 国外推广网站有哪些/北京网站seo技术厂家
  • 安徽中兴建设工程有限公司网站/免费网站注册免费创建网站
  • 企业网站建设现状/今日头条搜索引擎
  • 搭建网站的价格/网站如何进行seo
  • 东莞做网站ab0769/手机优化软件哪个好用
  • 网站让百度收录应该怎么做/武汉关键词seo排名
  • 找个网页公司做网站/广告传媒公司
  • 山东济南疫情最新消息今天/怎样优化网站关键词排名靠前
  • 门户类网站建立有哪些构成/百度广告联盟app