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

阅读时长 6 分钟读完

在 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

纠错
反馈