使用 Pug
Pug(原名 Jade)是一个高效的模板引擎,使用缩进语法来生成 HTML。相比传统的 HTML,Pug 模板简洁且可读性高,广泛应用于 Express 应用中。
安装 Pug
首先,在项目中安装 Pug 模板引擎:
npm install pug
`
配置 Pug
在 Express 中设置 Pug 作为模板引擎,并配置视图文件夹:
const express = require('express');
const path = require('path');
const app = express();
// 设置模板引擎为 Pug
app.set('view engine', 'pug');
// 设置视图文件夹路径
app.set('views', path.join(__dirname, 'views'));
app.listen(3000, () => {
console.log('服务器启动在 http://localhost:3000');
});
渲染 Pug 模板
使用 res.render() 渲染 Pug 模板并传递数据:
app.get('/', (req, res) => {
res.render('index', { title: 'Express 和 Pug' });
});
创建 views/index.pug 模板
在 views 文件夹中创建一个名为 index.pug 的文件:
doctype html
html(lang="en")
head
meta(charset="UTF-8")
title= title
body
h1 欢迎来到 #{title} 网站!
渲染结果
访问 http://localhost:3000 时,Express 会使用 index.pug 模板和传递的数据生成以下 HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Express 和 Pug</title>
</head>
<body>
<h1>欢迎来到 Express 和 Pug 网站!</h1>
</body>
</html>
Pug 模板语法
Pug 语法与传统的 HTML 相比,简化了标记,并且不需要关闭标签。以下是一些常用的 Pug 语法:
1. HTML 元素
Pug 使用缩进语法代替标签,并且不需要闭合标签:
html
head
title Example Page
body
h1 Hello, World!
p Welcome to Pug templates!
2. 变量插值
通过 #{} 插值语法插入变量:
h1 欢迎来到 #{title} 网站!
3. 条件判断
Pug 支持类似 JavaScript 的条件语句:
- if user.isLoggedIn
p 欢迎回来,#{user.name}
- else
p 请登录
4. 循环
使用 each 循环语法:
ul
each item in items
li= item
5. 注释
Pug 使用 // 来注释:
// 这是一个注释
6. 表单
Pug 支持简洁的表单语法:
form(action="/submit", method="POST")
input(type="text", name="username")
button(type="submit") 提交
渲染动态数据
在 Pug 模板中,动态数据通过 locals 对象传递。例如,在 app.js 中传递数据:
app.get('/user/:name', (req, res) => {
const name = req.params.name;
res.render('user', { userName: name });
});
在 views/user.pug 模板中:
h1 用户名: #{userName}
总结
Pug 提供了简洁高效的模板语法,使得动态生成 HTML 页面变得更加直观和易于维护。通过结合 Pug 和 Express,你可以快速构建和渲染动态页面,提升开发效率和代码质量。
相关内容
- 常用中间件列表 本章节将介绍一些常用的 Express 中间件,它们可以帮助您简化应用的开发。中间件用于处理请求、响应,或在请求处理过程中执行额外的操作。本章节包括一些常见的中...
- 常见错误及解决方案 本章节将介绍在开发 Express 应用时常见的错误及其解决方案。通过了解这些常见问题及其处理方法,您可以更有效地调试和优化您的应用。
- 推荐阅读资源 本章节提供了一些推荐的学习资源,包括书籍、在线教程、视频课程和社区资源,帮助您深入了解 Express 和相关技术栈,提升开发技能。
- Express 对比 Koa 和 Next.js 本章节将对比 Express、Koa 和 Next.js 三个常见的 Node.js 框架,分析它们的特点、使用场景、优势和劣势,帮助开发者根据项目需求选择合适...
- 什么是 Node.js? Node.js 是基于 Chrome V8 引擎的 JavaScript 运行时环境,支持在服务器端运行 JavaScript,实现高性能非阻塞 I/O,广泛应...
- 什么是 Express? Express 是基于 Node.js 的极简灵活的 Web 应用框架,简化服务器端开发流程,提供强大的路由、中间件支持,广泛用于构建高性能 Web 服务和 A...