
在 Node.js 的 Web 服务器开发领域,Express 框架是一个广受欢迎的选择,它简洁高效,能帮助开发者快速搭建 Web 应用。而模板引擎的集成则让 Express 更加强大,能够方便地生成动态 HTML 页面。本文将深入探讨在 Express 框架中集成不同模板引擎的方法,并给出详细的演示代码。
在 Web 开发中,我们常常需要生成动态的 HTML 页面。如果手动拼接 HTML 字符串,代码会变得复杂且难以维护。模板引擎提供了一种更优雅的方式来处理动态内容,它允许我们在 HTML 模板中嵌入变量、条件语句和循环等逻辑,使代码更加清晰和易于管理。
以下是一些常见的 Node.js 模板引擎:
| 模板引擎 | 特点 |
|---|---|
| EJS(Embedded JavaScript) | 语法类似于 JavaScript,简单易学,适合初学者。 |
| Pug(原名 Jade) | 采用缩进式语法,简洁优雅,减少了 HTML 标签的使用。 |
| Handlebars | 语法简单,具有强大的模板复用能力。 |
首先,创建一个新的项目目录,并初始化 package.json 文件:
mkdir express-ejs-examplecd express-ejs-examplenpm init -y
然后安装 Express 和 EJS:
npm install express ejs
创建一个 app.js 文件,内容如下:
const express = require('express');const app = express();// 设置视图引擎为 EJSapp.set('view engine', 'ejs');// 设置视图文件的目录app.set('views', './views');// 定义路由app.get('/', (req, res) => {const data = {title: 'EJS 示例',message: '欢迎使用 EJS 模板引擎!'};// 渲染 EJS 模板res.render('index', data);});// 启动服务器const port = 3000;app.listen(port, () => {console.log(`服务器运行在 http://localhost:${port}`);});
在项目根目录下创建一个 views 文件夹,并在其中创建一个 index.ejs 文件,内容如下:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title><%= title %></title></head><body><h1><%= message %></h1></body></html>
在终端中运行以下命令启动服务器:
node app.js
打开浏览器,访问 http://localhost:3000,你将看到页面显示“欢迎使用 EJS 模板引擎!”。
在项目中安装 Pug:
npm install pug
修改 app.js 文件如下:
const express = require('express');const app = express();// 设置视图引擎为 Pugapp.set('view engine', 'pug');// 设置视图文件的目录app.set('views', './views');// 定义路由app.get('/', (req, res) => {const data = {title: 'Pug 示例',message: '欢迎使用 Pug 模板引擎!'};// 渲染 Pug 模板res.render('index', data);});// 启动服务器const port = 3000;app.listen(port, () => {console.log(`服务器运行在 http://localhost:${port}`);});
在 views 文件夹中创建一个 index.pug 文件,内容如下:
doctype htmlhtml(lang="en")headmeta(charset="UTF-8")meta(name="viewport", content="width=device-width, initial-scale=1.0")title= titlebodyh1= message
同样,在终端中运行 node app.js,然后访问 http://localhost:3000,你将看到页面显示“欢迎使用 Pug 模板引擎!”。
安装 express-handlebars:
npm install express-handlebars
修改 app.js 文件如下:
const express = require('express');const exphbs = require('express-handlebars');const app = express();// 配置 Handlebars 视图引擎const hbs = exphbs.create({defaultLayout: 'main'});// 设置视图引擎为 Handlebarsapp.engine('handlebars', hbs.engine);app.set('view engine', 'handlebars');// 设置视图文件的目录app.set('views', './views');// 定义路由app.get('/', (req, res) => {const data = {title: 'Handlebars 示例',message: '欢迎使用 Handlebars 模板引擎!'};// 渲染 Handlebars 模板res.render('index', data);});// 启动服务器const port = 3000;app.listen(port, () => {console.log(`服务器运行在 http://localhost:${port}`);});
在 views 文件夹中创建一个 layouts 文件夹,并在其中创建一个 main.handlebars 文件,内容如下:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>{{title}}</title></head><body>{{{body}}}</body></html>
在 views 文件夹中创建一个 index.handlebars 文件,内容如下:
<h1>{{message}}</h1>
在终端中运行 node app.js,访问 http://localhost:3000,你将看到页面显示“欢迎使用 Handlebars 模板引擎!”。
通过集成模板引擎,我们可以在 Express 框架中更方便地生成动态 HTML 页面。不同的模板引擎有不同的语法和特点,你可以根据项目的需求和个人喜好选择合适的模板引擎。希望本文能帮助你在 Node.js 的 Web 服务器开发中更好地使用 Express 框架和模板引擎。