在 Fastify 框架中使用 Ejs 模版引擎的实现方式

前言

Fastify 是一个高效、低开销的 Web 框架。它提供了可靠的开发体验,使得开发者能够快速构建出功能齐全的应用程序。同时,Ejs 是一个轻量级的模版引擎,提供了快速和简单的 HTML 页面渲染。在 Fastify 应用中使用 Ejs 模版引擎可以快速构建出具备视觉效果的 Web 应用。

在本文中,我们将介绍如何在 Fastify 应用中使用 Ejs 模版引擎,包括如何配置、渲染视图以及如何在视图中使用数据。

配置 Fastify 使用 Ejs

要在 Fastify 应用中使用 Ejs 模版引擎,需要先安装 Ejs。

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

在 Fastify 使用 Ejs 模版引擎之前还需要进行一些配置。示例代码如下:

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

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

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

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

在上述代码示例中,我们通过 require('point-of-view') 引入了 Fastify 插件 point-of-view 。然后再通过调用 app.register 方法,传入引擎和模板的相关配置项来将其应用于 Fastify 项目中。其中具体解释如下:

  • engine:配置将Fastify 中的模板与 Ejs 引擎关联。
  • root:设置查找模板的路径。如果没有设置,默认值是 process.cwd() 。在传入该值时,建议使用 _dirname 导出绝对路径,可避免因为调用方式不一致而导致路径错误。

渲染 Ejs 模板

接下来是如何呈现 Ejs 模板。以下代码演示了如何在Fastify 中呈现 Ejs 模板:

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

在上述代码示例中,我们使用 reply.view 方法来呈现 Ejs 模板。reply.view 方法中第一个参数是模板文件的路径。{name: 'Joey', age: 28} 是一个对象,将通过模版引擎传递到模板中。

为了配合以上代码获得更好的结果,你需要在项目根目录下的 views 目录中新建一个 index.ejs 文件。

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

在模板中使用 <%= name %><%= age %> 标记来引用 reply.view 函数中传递的数据参数。

在 Ejs 模板中使用数据

除了上面例子中的语法,Ejs 模板还支持许多其他的用法,例如条件语句、循环语句、数据的格式化等等。下面我们通过简单的演示来体验一下所有功能。

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

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

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

在上述代码示例中,我们创建了一个数组,其中包含不同类别的水果。然后,在“index.ejs”模板中使用了demo,包括以下内容:

  • 输出数组中的随机水果和其颜色。
  • 使用 each 迭代器将数据渲染到表中。
  • 使用条件语句输出给定值或默认值。

在新建的 index.ejs 文件中,示例代码如下:

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

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

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

通过一些简单的代码实例,您已了解了如何在 Fastify 中使用 Ejs 模板引擎,以呈现动态数据的交互页面。

总结

Fastify 和 Ejs 都是成熟的技术,使得开发人员能够快速构建出具备良好视觉效果的 Web 应用。在 Fastify 应用中使用 Ejs 模版引擎不仅可以减轻开发工作量,也可以大大提高应用程序的效率。在本文中,我们介绍了如何完整地配置 Fastify 和 Ejs,以及如何呈现动态数据的交互页面。我们相信这些示例代码可以帮助你进一步学习和使用。

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


猜你喜欢

  • 如何使用 Mongoose 的中间件来进行数据预处理?

    Mongoose 是一个 Node.js 的 MongoDB 驱动程序,它允许您通过对象模型来操作 MongoDB。Mongoose 具有很多有用的功能,其中之一就是中间件。

    1 年前
  • Tailwind CSS 在实际项目中的应用实践

    Tailwind CSS 是一个易于使用且高度可定制的 CSS 框架,它提供了许多实用的类,这些类可以快速创建出美观且具有一致性的 UI。 在本文中,我们将探讨 Tailwind CSS 在实际项目中...

    1 年前
  • Material Design 中使用 CardView 实现数据展示卡片效果

    在现代的 Web 应用中,数据呈现通常采用列表、表格、图表等方式。这些数据呈现方式虽然简单易懂,但却过于普通。如果想让数据呈现更加生动有趣,那么卡片展示就是一个不错的选择。

    1 年前
  • # Next.js 中使用 React Context 传递参数的方法

    Next.js 中使用 React Context 传递参数的方法 在前端开发中,使用 React 开发网页已经成为了常态,而 Next.js 作为一个基于 React 的框架也在逐渐流行。

    1 年前
  • 使用 Node.js 和 Express 搭建实时聊天室

    介绍 本文将指导你在 Node.js 和 Express 的基础上建立一个实时聊天室。Node.js 是一个基于事件驱动的异步 I/O 模型,非常适合构建网络应用程序。

    1 年前
  • 使用 ES8 引入的 Object.getOwnPropertyDescriptors() 方法创建正确的对象副本

    在前端开发中,我们经常需要创建对象副本,并对其进行操作。然而,由于 JavaScript 中的对象是引用类型,我们在创建对象副本时要非常小心,以免对原始对象造成意义上的破坏。

    1 年前
  • Redis 如何应对缓存击穿和缓存雪崩问题

    前言 在前端开发过程中,我们经常会使用 Redis 缓存来提升我们网站的性能和响应速度。但是使用 Redis 也会存在一些问题,如缓存击穿和缓存雪崩。这两个问题会导致 Redis 响应时间变慢,最终影...

    1 年前
  • 遇到 CSS Reset 引起的字体问题该如何解决

    背景 在进行前端开发时,我们通常会使用 CSS Reset 来重置不同浏览器的默认样式表。然而,有时候会因此带来一些意想不到的问题,比如字体大小、字体样式等方面出现差异。

    1 年前
  • 使用 Socket.io 和 Koa2 实现基于 Websocket 的在线电商平台

    随着 Web 技术的不断发展,越来越多的网站开始使用实时通信技术来提升用户体验。本文将介绍如何使用 Socket.io 和 Koa2 实现一个基于 Websocket 的在线电商平台。

    1 年前
  • 如何在 GraphQL 中使用 OrientDB

    GraphQL 是一种用于 API 的查询语言,它提供了一种更高效、强大和灵活的方式来访问你的数据。OrientDB 是一个高度可扩展的多模型数据库,它支持图形、文档、键值对、对象等多种数据模型。

    1 年前
  • 如何在 Promise 中实现数据缓存

    如何在 Promise 中实现数据缓存 在前端开发中,数据缓存是必不可少的技术。它可以减少网络请求的次数,提高数据的加载速度,提高用户体验。本文将介绍如何在 Promise 中实现数据缓存。

    1 年前
  • # Web Components 概述:何时不用它

    Web Components 概述:何时不用它 Web Components 是一种用于创建可复用 Web 应用程序组件的技术。它被视为未来 Web 开发的趋势之一,因为它可以提供更丰富和复杂的应用程...

    1 年前
  • ES2018 的幂运算符简介及示例

    ES2018 是 ECMAScript 的最新规范,其中包含许多新特性和语法糖。在这些特性中,幂运算符是一个非常有用的特性,它使得指数运算更加直观和易于理解。本文将对 ES2018 的幂运算符进行详细...

    1 年前
  • 如何为响应式设计做好 SEO 优化?

    随着移动设备的普及,越来越多的网站开始采用响应式设计。响应式设计可以让网站在不同的设备上呈现不同的布局和样式,提高用户体验。但是,在实现响应式设计的同时,我们也需要注意 SEO 优化,否则可能会影响网...

    1 年前
  • PWA 实践:实现图片 / 文件上传

    PWA 是一种新兴的 Web 技术,在移动端使用的广泛,它允许您创建快速并且可靠的 Web 应用程序。其中之一的优势就是可以脱离网络运作,因此,能够创建一个可以离线保存数据的完整 Web 应用程序。

    1 年前
  • Vue.js+Webpack 搭建 SPA 项目,如何解决 Webpack 无法识别 HTML 文件?

    在前端开发中,Vue.js 和 Webpack 被广泛应用于单页面应用(SPA)项目的开发中。但是在使用中,我们常常会遇到 Webpack 无法识别 HTML 文件的情况,这就会导致编译失败,影响项目...

    1 年前
  • Flexbox 解决右侧宽度自适应的布局问题

    在现代 Web 开发中,响应式设计成为了设计和开发的重要课题。为了保证页面在不同的设备上显示效果的一致性,需要一些灵活的布局手段。在这篇文章中,我们将介绍使用 Flexbox 解决右侧宽度自适应的布局...

    1 年前
  • 在 Deno 中使用 MongoDB 进行数据持久化

    Deno 是一个现代的、安全的 JavaScript/TypeScript 运行环境,它内置了很多有用的功能,比如支持 ES6+ 语法、访问底层系统 API、支持多线程等。

    1 年前
  • Kubernetes 上使用 Kafka 传递消息

    随着云计算和微服务架构的兴起,使用 Kubernetes 管理应用程序的趋势越来越明显。对于容器化的应用程序而言,消息传递是一种常见的通信模式,而 Kafka 则是一款流行的分布式消息传递系统。

    1 年前
  • ES2021:使用最佳实践进行组件化开发

    在前端开发中,组件化已经成为了一个非常重要的概念。使用组件化开发可以使得代码更加清晰、易于维护和重用,同时也能够提升开发效率。在今年的 ES2021 中,也加入了一些新的特性,让我们能够更加方便地进行...

    1 年前

相关推荐

    暂无文章