如何使用Node.js添加HTML?求Express.js适用的非EJS类库
除EJS外,可配合Express.js使用的HTML模板引擎
Pug(原Jade)
采用缩进式语法,无需编写闭合标签,代码简洁紧凑,适合偏好极简风格的开发者。
安装命令:npm install pug
Express配置示例:const express = require('express'); const app = express(); app.set('view engine', 'pug'); app.set('views', './views'); // 指定模板文件存放目录模板文件(
views/index.pug):html head title 示例页面 body h1 欢迎使用Pug p #{message}路由渲染:
app.get('/', (req, res) => { res.render('index', { message: '这是Pug渲染的内容' }); });Handlebars
基于Mustache语法,限制复杂逻辑,主打模板与业务逻辑分离,适合需要保持模板简洁易维护的场景。
安装命令:npm install express-handlebars
Express配置示例:const express = require('express'); const exphbs = require('express-handlebars'); const app = express(); app.engine('handlebars', exphbs.engine()); app.set('view engine', 'handlebars'); app.set('views', './views');模板文件(
views/index.handlebars):<!DOCTYPE html> <html> <head> <title>示例页面</title> </head> <body> <h1>欢迎使用Handlebars</h1> <p>{{message}}</p> </body> </html>路由渲染:
app.get('/', (req, res) => { res.render('index', { message: '这是Handlebars渲染的内容' }); });Nunjucks
功能全面,支持模板继承、宏、条件判断、循环等特性,语法接近原生HTML,学习成本低,灵活性强。
安装命令:npm install nunjucks
Express配置示例:const express = require('express'); const nunjucks = require('nunjucks'); const app = express(); nunjucks.configure('views', { express: app, autoescape: true // 自动转义HTML,防范XSS攻击 }); app.set('view engine', 'njk');模板文件(
views/index.njk):<!DOCTYPE html> <html> <head> <title>示例页面</title> </head> <body> <h1>欢迎使用Nunjucks</h1> <p>{{ message }}</p> {% if showList %} <ul> {% for item in list %} <li>{{ item }}</li> {% endfor %} </ul> {% endif %} </body> </html>路由渲染:
app.get('/', (req, res) => { res.render('index', { message: '这是Nunjucks渲染的内容', showList: true, list: ['项目1', '项目2', '项目3'] }); });Eta
轻量级高性能模板引擎,语法和EJS几乎一致(能兼容多数EJS代码),但体积更小、运行更快,是EJS的轻量化替代选择。
安装命令:npm install eta
Express配置示例:const express = require('express'); const eta = require('eta'); const app = express(); app.engine('eta', eta.renderFile); app.set('view engine', 'eta'); app.set('views', './views');模板文件(
views/index.eta):<!DOCTYPE html> <html> <head> <title>示例页面</title> </head> <body> <h1>欢迎使用Eta</h1> <p><%= message %></p> </body> </html>路由渲染:
app.get('/', (req, res) => { res.render('index', { message: '这是Eta渲染的内容' }); });
内容的提问来源于stack exchange,提问作者tysik
相关产品推荐
相关产品推荐

