Express.js/ Node.js:如何在 EJS 中包含部分视图

引言

在网页开发中,模板引擎是非常常用的技术之一,它用于在网站中生成 HTML 页面。在 Node.js 中,开发者可以使用 EJS(Embedded JavaScript templates)作为模板引擎来渲染 HTML 页面。EJS 允许您创建可复用的代码片段,并将其作为部分视图嵌入到您的 EJS 文件中。

本文旨在介绍如何在 Express.js/ Node.js 的 EJS 中包含部分视图,并提供示例代码和学习指导。

为什么需要部分视图?

在一个网站中,许多页面可能具有相似的结构和视觉元素。在这些情况下,每次创建一个新页面都会导致大量的重复代码和维护开销。解决这个问题的一种方法是使用部分视图来创建可重用的代码片段。

部分视图是一种嵌入到引用它们的页面中的“片段” HTML。通过在多个页面中重复使用部分视图,您可以减少代码的复制和粘贴,并使网站更易于维护。

如何在 EJS 中包含部分视图

首先,您需要创建一个模板文件来编写您的 EJS 代码。该文件的文件扩展名应该是 ".ejs"。在这个模板文件中,您可以使用标准的 EJS 语法来编写您的页面。

例如,以下是一个简单的模板文件,它将在页面的头部和脚部中包含两个部分视图:

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

在上面的代码中,我们使用 <% include %> 语法来引用我们的部分视图。该语法用于将一个指定的文件中的内容包含进来,并在渲染页面时将其嵌入到相应的位置。在本例中,我们使用了三个 <% include %>。这将包含 partials/head.ejs 中的内容作为页面的头部,partials/footer.ejs 中的内容作为页面的脚部,并使用了 partials/header.ejs 中的内容作为页面的主体部分。

现在让我们看看如何将实际部分视图创建为 EJS 文件。

创建部分视图

创建一个 EJS 部分视图很简单。只需编写您要在多个页面中重复使用的 HTML 代码,并将其保存为 .ejs 文件,即可完成部分视图的创建。本文中的示例代码中,我们将使用一个包含店铺名称、地址、电话号码和商标的 footer 部分视图,作为我们的示例部分视图。

创建 partials/footer.ejs 文件,并添加以下代码:

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

在上面的示例中,我们使用标准的 EJS 语法来插入变量并渲染 HTML 输出。该部分视图使用变量 shopNameshopAddressshopPhone 进行传递,以便在嵌入部分视图的页面中进行自定义。

app.js 文件中,我们可以定义并渲染模板页面:

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

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

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

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

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

在上面的代码中,我们使用 res.render() 函数来渲染我们的 EJS 模板文件 index.ejs。我们在模板上设置了 pageTitle 变量和该应用程序名称变量的其他属性,然后将其传递到模板中以进行处理和显示。

<% include %> 中,我们要指向之前定义的 .ejs 文件。由于在 partials 文件夹中实现了我们的部分视图,因此我们需要相对于 views 文件夹指定该视图的路径。为了简化路径,我们在 app.js 中设置了 views 选项来设置视图文件夹的默认路径。

现在,您已经学会了如何在 EJS 中包含部分视图。您可以通过以下两种方式对部分视图进行扩展,使其更具通用性:

  1. 使用变量来自定义部分视图的内容。

  2. 使用数据库中的数据来动态生成部分视图。这将允许您在安全的条件下自定义部分视图,并从数据中心维护您的网站。

总结

在本文中,我们详细讨论了如何在 Express.js/ Node.js 中使用 EJS 来创建可重用的部分视图,并给出了实现步骤。本文介绍了如何创建 EJS 模板文件、在模板文件中包含部分视图、如何创建自定义 EJS 部分视图、以及如何使用数据来动态生成部分视图。我们希望本文可以帮助您更好地理解 Node.js 中的 EJS 并在网站设计中提高工作效率。

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


猜你喜欢

  • Nginx 性能优化:如何处理海量访问请求

    在现代 web 应用中,如何应对海量的访问请求是一个非常重要的问题。Nginx 作为一款高性能、轻量级的 web 服务器软件,可以帮助我们应对这个挑战。本文将介绍一些 Nginx 的性能优化技巧,帮助...

    1 年前
  • SASS 的高级语法及实现技巧

    SASS 是一种 CSS 预处理器,它可以让我们写更优雅、更简洁的 CSS 代码。在这篇文章中,我们将探讨 SASS 的高级语法及实现技巧,帮助你更好地使用 SASS。

    1 年前
  • Custom Elements 组件坑及解决方案

    前言 在前端开发中,自定义组件渐渐成为了一种趋势,Custom Elements 是其中的一种技术方案。Custom Elements 是一个 Web 标准,它能够让开发者自定义出属于自己的 HTML...

    1 年前
  • 使用 Vue.js 和 Web Components 构建高性能 Web 应用程序

    Web 应用程序的性能是使用者提高用户体验的必要因素之一,而使用前端常用的框架可以加速应用程序的开发,同时提高其性能。这篇文章会讲述如何使用 Vue.js 和 Web Components 构建高性能...

    1 年前
  • 如何使用 Webpack 将 jQuery 和 Bootstrap 打包成 Dll 文件?

    在前端开发中,我们经常会使用一些常用的库,比如 jQuery 和 Bootstrap。这些库通常被作为依赖引入我们的项目中。但是,随着项目的规模变得越来越大,每次重新打包时,这些库都需要被重新处理,会...

    1 年前
  • ES6 的 Proxy 对象用法及其优点

    ES6 引入了一个新的 API:Proxy 对象。它可以让我们通过自定义的方式来拦截并处理对象相关的操作。在本文中,我们将深入探讨 Proxy 对象的用法,并分析它的优点。

    1 年前
  • 使用 OpenFaaS 构建 Serverless 架构的微服务

    如今,Serverless 架构已经成为了 web 开发领域的重要技术。Serverless 架构通过将请求驱动一些服务组件的方式,提供自动扩展能力和更好的资源利用率,从而实现了更高的灵活性和更低的运...

    1 年前
  • PWA 性能优化:利用 Web Worker 改善响应速度

    随着 PWA 技术的普及,越来越多的网站开始向 PWA 转型。在这个转型的过程中,有一个重要的课题就是如何优化 PWA 的性能,从而提供更好的用户体验。其中,利用 Web Worker 改善响应速度是...

    1 年前
  • SPA 用 React-Router 不需要配置 Nginx 反向代理

    前言 前端技术日新月异,现代的 Web 应用已经逐渐转向单页面应用 (SPA)。SPA 通过 JavaScript 动态渲染页面,用户不需要每次点击都重新加载整个页面,从而可以提高用户的体验感。

    1 年前
  • Chai 测试库:style matters

    在前端开发中,测试是一项至关重要的活动。通过测试,我们可以保证代码的质量、可靠性和稳定性。而 Chai 是一款流行的 JavaScript 测试库,其使用简便且高度可自定义,成为了前端开发者测试时不可...

    1 年前
  • 在 Express.js 应用程序中使用 Passport 和 Google OAuth 实现登录功能的方法

    在 Web 应用中,用户登录功能是一个基本且常见的功能,而使用第三方身份验证提供程序(IDP)来实现登录功能会使其更为实用和安全。在本文中,我们将介绍如何在 Express.js 应用程序中使用 Pa...

    1 年前
  • 使用 Next.js 打造 SPA 应用的技巧和经验

    随着 Web 技术的不断发展,单页应用(Single-Page Application,简称 SPA)已经成为了 Web 应用中的热门技术之一。SPA 应用将页面跳转、资源请求等操作全都通过 Java...

    1 年前
  • 如何在 Enzyme 中测试 Redux 的异步 Action?

    Redux 作为目前前端开发中最流行的状态管理库之一,为我们的项目提供了快捷高效的状态管理方式。而在 Redux 中,异步 Action 也是一个非常重要、常用的功能。

    1 年前
  • MongoDB 的数据备份与恢复策略分析

    简介 MongoDB 是一种流行的 NoSQL 数据库,常用于构建 Web 应用程序和其他大型数据应用程序。在开发和运行应用程序时,数据备份和恢复是非常重要的。本文将介绍 MongoDB 的备份和恢复...

    1 年前
  • Fastify 如何实现 API 版本控制

    Fastify 是一种快速、开放、低开销且极具可扩展性的 Web 框架,它为开发人员提供了许多功能。其中之一是简单而灵活的 API 版本控制。API 版本控制是一种为 Web API 设计的策略,可以...

    1 年前
  • 利用 ES10 的 flat 和 flatMap 实现二维数组的扁平化操作

    在 JavaScript 的开发中,经常会涉及到多维数组的扁平化操作。以前我们可能需要使用循环遍历等方式来手动完成这个操作。但是随着 ES10 引入的 flat 和 flatMap 方法,这个操作变得...

    1 年前
  • Sequelize 中如何使用 Op.is 等操作符进行数据的为空、不为空查询

    Sequelize 中如何使用 Op.is 等操作符进行数据的为空、不为空查询 Sequelize 是一款优秀的 Node.js ORM 框架,类似于其他数据库框架,它提供了诸如查询条件、更新和删除、...

    1 年前
  • ECMAScript 2021 (ES12) 中 WeakRef 和 FinalizationRegistry 详解

    在 ECMAScript 2021 (ES12) 中,引入了两个新的原生 API:WeakRef 和 FinalizationRegistry。这两个 API 都是为了更好地支持内存管理而设计的。

    1 年前
  • Mongoose 中使用聚合查询的方法

    在 MongoDB 中,聚合管道是一个数据处理管道,它允许 MongoDB 对文档进行集合查询和操作,在进行多步骤的数据处理时非常有用。Mongoose 作为 Node.js 的 MongoDB 驱动...

    1 年前
  • 解决 ES7 中使用 async/await 时出现 Promise not defined 的错误

    ES7 中引入了 async/await 这种更加优雅的异步编程方式,它允许我们以同步的方式编写异步代码,并且比传统的 Promise 更加易读易维护。但是,当你在使用 async/await 时,有...

    1 年前

相关推荐

    暂无文章