在 Express.js 中使用 Pug 模板引擎的最佳实践

在 Web 开发中,模板引擎是非常重要的一环。它可以帮助我们快速地生成 HTML 页面,而不需要手动编写大量的 HTML 代码。Express.js 是一个流行的 Node.js Web 框架,而 Pug 则是一种流行的模板引擎。本文将介绍在 Express.js 中使用 Pug 模板引擎的最佳实践。

安装和配置 Pug

首先,我们需要使用 npm 安装 Pug 模板引擎。

--- ------- ------ ---

开发中一般使用 nodemon 进行热更新,保持代码同时更新并自动重启,也需要安装。

--- ------- ---------- -------

接下来,在 Express.js 的 app.js 文件中配置 Pug 模板引擎。我们使用 app.set() 方法来设置视图引擎和视图目录。视图引擎参数需要传入 pug。视图目录参数需要是一个字符串,用于告诉 Express.js 在哪里查找视图文件。

----- ------- - -------------------
----- --- - ----------

------------- -------- -------
---------------- -----------

创建 Pug 模板

接下来我们可以创建一个 Pug 模板,用于渲染页面。在 views 目录下新建一个文件,文件名为 index.pug。

以下是一个基本的 Pug 模板:

--------- -----
---------------
  ----
    ---------------------
    ----- -- --- ----
  ----
    --- -----
    - ------- -- -- -------
    --
      --
        ----------- ---- -
      --
        ----------- ---- -
      --
        ----------- ---- -

在上面的 Pug 模板中,我们可以看到一些特殊的语法。例如,我们使用的是缩进来表示 HTML 代码块。另外,我们使用了一些 Pug 特有的语法,例如 h1= title,其中的等于符号表示要将 JavaScript 变量 title 的值渲染到 h1 标签中。

在 Express.js 中渲染 Pug 模板

现在我们已经创建了一个 Pug 模板。我们需要在 Express.js 中使用它。我们可以使用 res.render() 方法来渲染 Pug 模板。

------------ ----- ---- -- -
  ------------------- - ------ --- --- ----- ---
---

在上面的代码中,我们使用 app.get() 方法来处理 HTTP GET 请求。我们使用 res.render() 方法来渲染 Pug 模板,第一个参数表示模板文件名(不需要文件扩展名),第二个参数则是传递给模板的数据。在这个例子中,我们向模板中传递了一个包含 title 属性的对象。

使用模板继承和局部模板

模板继承和局部模板可以帮助我们更好地组织代码,并实现代码的复用。

模板继承

以下是一个使用 Pug 的模板继承的例子。

-- ----------
----
  ----
    ----- -- ---
  ----
    ----- -------
-- ---------

------- ----------

----- -------
  -- ------- -- -- ---

在上面的代码中,我们定义了一个 layout.pug 模板,它包含了 HTML 页面的基本结构。我们使用 extends 关键字来扩展这个模板。在 index.pug 文件中,我们使用 block content 关键字来指定在 layout.pug 模板中的内容区域

局部模板

以下是一个使用 Pug 的局部模板的例子。

-- ----------
----
  ----
    ----- -- ---
  ----
    ------
      ------- ----------
    ----- -------
    ------
      ------- ----------
-- ----------

-- -- ---

---
  --
    --
      ----------- ----
    --
      ---------------- -----

在上面的代码中,我们定义了一个 layout.pug 模板,它包含了 HTML 页面的基本结构。在模板中,我们包含了两个局部模板:header.pug 和 footer.pug。局部模板通常用于在整个应用程序中重复使用的代码。在实际应用中,当局部模板更改时,您不必在每个视图中手动更改代码,因为所有使用该局部模板的视图都将自动更新。

使用 Pug 扩展功能

Pug 还有许多其他的功能和语法。在这里,我们只介绍了一些基本的用法。

条件和循环

Pug 中可以使用条件和循环语句来完成复杂的业务逻辑。

以下是一个使用条件语句的例子。

-- ----
  -- -------- -------------
----
  -- ------ --- --

以下是一个使用循环语句的例子。

--
  ---- ---- -- -----
    -------

过滤器

Pug 中可以使用过滤器来对输出进行过滤。

以下是一个使用 Markdown 过滤器的例子。

---------
  - ------ ------

Pug Mixins

Pug Mixins 可以帮助我们重复使用一些常用的代码块,并让它们更容易维护和更新。

以下是一个 Pug Mixins 的例子。

----- ----------- --------
  -----
    ------------
      --- -----
    ----------
      -- -------

我们可以在模板中调用这个 Mixins。

--------- ---- ------- ----- -- --- ------- -- -- -------

在上面的代码中,我们使用了 +card 语法来调用 Mixins,并向它传递了两个参数分别是 title 和 content。

参考资料

总结

本文介绍了在 Express.js 中使用 Pug 模板引擎的最佳实践。我们通过安装和配置 Pug 模板引擎,创建了 Pug 模板,并在 Express.js 中渲染了这个模板。我们还介绍了使用模板继承和局部模板、Pug 的扩展功能以及 Pug Mixins。希望这篇文章能对您有所帮助。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/651d2ecf95b1f8cacd4b3878


猜你喜欢

  • 认识 PWA 技术:当下最火的前端技术

    PWA 技术(全称 Progressive Web App)是一种全新的网页应用开发方式,它能够带来原生应用的用户体验,并具备渐进增强的特点。目前已经成为了前端开发中最火热的技术之一。

    1 年前
  • 「实践经验」如何使用 Swagger 构建 RESTful API 文档

    在现代的应用中,API(Application Programming Interface)已经成为不可或缺的一部分。关于如何正确地设计和文档化 API,是每个开发者必须掌握的技能。

    1 年前
  • Jest 中对浏览器 BOM、DOM API 进行模拟示例详解

    Jest 是一个流行的 JavaScript 测试框架,可以用于测试前端代码。在编写前端测试时,经常需要模拟浏览器环境中的 BOM(浏览器对象模型)和 DOM(文档对象模型) API。

    1 年前
  • ECMAScript 2019 中的箭头函数和 Function.prototype.toString 如何配合使用?

    随着 ECMAScript 标准的不断更新,箭头函数(Arrow Functions)已经成为了前端开发中的一项重要技术。而在 ECMAScript 2019 中,箭头函数的使用得到了进一步优化,并且...

    1 年前
  • Fastify 中实现真正的错误日志追踪

    Fastify 是一种快速、低开销的 Node.js Web 框架。它使用异步编程模型和支持流控制来提高性能。然而,这意味着您需要小心地处理错误日志记录,以确保错误的原因得以正确追溯。

    1 年前
  • Docker 搭建 MySQL 开发环境

    随着云计算的普及,Docker作为一种轻量级的容器技术,更是成为了现代应用开发中不可或缺的一部分,其可以帮助我们快速高效地构建开发环境。下面我们将介绍如何使用 Docker 搭建 MySQL 开发环境...

    1 年前
  • AngularJS 如何将数据保存在本地存储中

    简介 随着前端开发日渐复杂,越来越多的应用需要在用户的电脑上保存数据。而传统的 cookie 存储已经不再满足需求。本文将详细介绍如何在 AngularJS 应用中使用本地存储来保存用户数据。

    1 年前
  • TypeScript 指南:箭头函数、类型注解和类型推断

    前言 前端开发已经成为了当代热门职业之一。JavaScript 语言作为前端开发中使用最广泛的一种语言,随着工业界应用的日益广泛,逐渐暴露出了一些问题。由于 JavaScript 的弱类型特性,开发者...

    1 年前
  • SASS 中的每个像素都有个故事:对 REM 的了解、使用及调试等方法

    什么是 REM REM 是 CSS3 中新增的一个单位,它指的是“根元素字体大小”的缩写(root em),即 html 元素的字体大小。相比于 px 单位,使用 REM 有以下优势: 样式表随字体...

    1 年前
  • ES9 的新特性:函数参数和对象扩展运算符 rest

    随着前端技术的不断发展和革新,JavaScript 的进化与传统的计算机语言相仿。新的 ECMAScript 标准也在不断的更新,这些变化可能会使你的代码更清晰、更健壮并能以更有条理的方式处理数据。

    1 年前
  • Custom Elements 实现可视化拖拽操作组件

    在前端开发中,实现拖拽操作是常见的需求之一。实现拖拽操作可以轻松实现布局,提高用户体验。本文将介绍使用 Custom Elements 实现可视化拖拽操作组件的方法,并提供示例代码帮助读者更好地理解。

    1 年前
  • Webpack4 新特性解析:代码分割和懒加载

    Webpack是一个功能强大的JavaScript模块打包器,它可以将您的多个JavaScript文件(模块)打包成单个文件。在Webpack 4中,有许多新特性被引入,其中最重要的是代码分割和懒加载...

    1 年前
  • 使用 Less 模块化提高 CSS 可维护性

    在前端开发中,CSS 的复杂度和可维护性一直是令人头疼的问题。为了更好地管理 CSS 样式,可以使用 Less 这样的 CSS 预处理器。Less 可以让我们编写更结构化、模块化的 CSS,并且减少代...

    1 年前
  • 在 Vue.js 中使用 Promise 的技巧及注意事项

    引言 Promise 是现代 JavaScript 开发中非常重要的概念之一,它是一种异步编程解决方案,可以有效地处理回调嵌套问题。在 Vue.js 中,Promise 也被广泛应用于处理异步操作。

    1 年前
  • Redis 对 Lua 脚本的支持及使用方法详解

    介绍 Redis 是一种高效的键值数据库,而 Lua 是一种快速且轻量级的脚本语言。在 Redis 中,Lua 脚本可以被用来运行复杂的操作,通过将多个 Redis 命令组合成一个 Lua 脚本来实现...

    1 年前
  • 理解 JavaScript 中的 URLSearchParams 对象及其在 ECMAScript 2017(ES8)中的改进

    在现代 Web 开发中,处理 URL 参数是一项常见的任务。为了帮助开发人员更方便地操作 URL 参数,JavaScript 提供了 URLSearchParams 对象。

    1 年前
  • HBase 性能优化实战

    在海量数据存储方面,HBase 是一个备受欢迎的 NoSQL 数据库。但是,在使用 HBase 时,也需要注意一些性能方面的问题,否则,可能会影响 HBase 的性能和稳定性。

    1 年前
  • CSS Flexbox 布局指南,详解 6 种常见布局应用

    在前端开发过程中,经常需要对页面进行布局。而传统的 CSS 布局方式已经很难满足现代网页的各种需求,因此前端开发人员需要学习更加高效灵活的布局方式。本文将介绍 CSS Flexbox 布局,详解其中的...

    1 年前
  • RxJS 中的 mergeMap 和 concatMap 区别解析

    在RxJS中,mergeMap和concatMap是两个常见的操作符,它们通常用于将高阶可观察源(Observable source)转换为一些其他的值,这些值可以是另一个可观察源,也可以是普通的值。

    1 年前
  • PWA 技术如何实现数据的保密访问?

    PWA 技术如何实现数据的保密访问? PWA (Progressive Web Application) 是一种用于开发 web 应用程序的技术方案,通过使用 Service Worker 和 Cac...

    1 年前

相关推荐

    暂无文章