模板引擎简介
模板引擎是用于生成动态 HTML 页面的工具。它可以将服务器端的数据与 HTML 模板结合,生成最终的页面内容。Express 支持多种模板引擎,如 EJS、Pug、Handlebars 等。
为什么使用模板引擎?
在传统的服务器端开发中,HTML 内容通常是静态的,无法根据用户请求的不同动态变化。通过模板引擎,服务器可以在响应中动态生成 HTML 内容,展示不同的数据。
模板引擎的优势:
- 动态内容渲染:根据请求动态渲染页面内容。
- 代码复用:模板文件可以复用 HTML 结构,减少代码重复。
- 可读性和维护性:模板语法简洁,易于维护。
Express 中使用模板引擎
Express 默认不自带模板引擎,但可以通过 view engine 设置与任意模板引擎结合。以 EJS 为例:
安装 EJS
npm install ejs
`
配置模板引擎
在 app.js 中配置使用 EJS:
const express = require('express');
const app = express();
// 设置模板引擎为 EJS
app.set('view engine', 'ejs');
// 设置视图文件存放的文件夹
app.set('views', path.join(__dirname, 'views'));
app.listen(3000, () => {
console.log('服务器启动在 http://localhost:3000');
});
渲染模板
使用 res.render() 渲染视图模板并传递数据:
app.get('/', (req, res) => {
res.render('index', { title: 'Express Template Engine' });
});
在 views/index.ejs 模板中:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title><%= title %></title>
</head>
<body>
<h1>欢迎来到 <%= title %> 网站!</h1>
</body>
</html>
渲染结果
当用户访问根路径时,服务器将使用 index.ejs 模板和传递的 title 数据,生成如下 HTML 响应:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Express Template Engine</title>
</head>
<body>
<h1>欢迎来到 Express Template Engine 网站!</h1>
</body>
</html>
支持的模板引擎
除了 EJS,Express 还支持其他常用模板引擎:
- Pug (原 Jade):简洁且功能强大的模板引擎。
- Handlebars:流行的逻辑模板引擎,支持模板继承和部分视图。
总结
模板引擎在 Express 中是生成动态内容的利器,可以让你根据用户的请求动态渲染 HTML 页面,提升应用的交互性和可定制性。
相关内容
- 常用中间件列表 本章节将介绍一些常用的 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...