You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 01:03:38