Node.js 中的模板引擎使用详解

Node.js 被广泛应用于 Web 开发领域,作为一名前端开发工程师,我们需要掌握 Node.js 中模板引擎的使用,它能帮我们更便捷地生成页面,提升开发效率。

一、什么是模板引擎

模板引擎是一种将模板和数据结合生成 HTML 文档的工具。模板是一个包含哪些需要展示的标记和占位符的文本,数据则是填充到模板中的具体内容。

Node.js 中常用的模板引擎有 EJS、Handlebars、Pug 等。

二、EJS 模板引擎

EJS 是一种简单的模板语言,它支持 JavaScript 模板语法和 HTML 标记。通过嵌入 JavaScript 代码,我们可以在 EJS 模板中实现很多更为复杂的功能。

1. EJS 模板引擎的基本使用

在 Node.js 环境下使用 EJS 模板引擎,需要先安装 ejs 模块,命令如下:

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

安装完成后,在 Node.js 文件中加载 ejs 模块,代码如下:

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

然后,我们就可以使用 ejs 模板引擎了。示例代码如下:

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

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

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

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

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

输出结果如下:

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

2. EJS 模板引擎的语法

EJS 模板引擎的语法相对简单,以下是 EJS 模板引擎的常用语法:

  • 输出 HTML:<%= ... %>
  • 输出 HTML(不转义):<%- ... %>
  • 执行 JavaScript 代码:<% ... %>
  • 条件判断:<% if(...) { ... } %>
  • 循环:<% for(...) { ... } %>

我们可以通过这些语法,实现模板的基本功能。

3. EJS 模板引擎的数据渲染

在 EJS 模板中,我们可以使用两种方式渲染数据:一种是通过传递数据对象,另一种是通过设置模板选项。

使用数据对象的方式,我们可以将数据直接绑定到模板上,如下所示:

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

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

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

我们也可以通过模板选项设置不同的数据,如下所示:

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

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

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

4. EJS 模板引擎的文件包含

在 EJS 模板中,我们可以使用 include 语句来引入其他模板文件的内容。例如,我们有一个头部模板文件和一个主体模板文件,可以通过如下方式来包含它们:

header.ejs 文件:

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

body.ejs 文件:

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

我们在引用 body.ejs 模板时,会自动包含 header.ejs 文件的内容。

5. EJS 模板引擎的实例

以下是一个完整的 EJS 模板引擎实例,包含了基本的语法、数据渲染、文件包含等功能。

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

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

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

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

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

这个例子中,我们在 index.ejs 文件中使用包含语句,引入了 header.ejs 文件的内容,在 app.js 文件中,我们读取 index.ejs 文件,并使用数据对象渲染了页面。

三、Handlebars 模板引擎

Handlebars 是一款高度可定制、一致性较强的模板引擎,它支持许多常用的功能,如条件语句、循环语句、Partials 等。在使用 Handlebars 进行模板开发时,我们需要遵循一定的规则,但这些规则带来的好处是可以让我们更为高效地开发模板。

1. Handlebars 模板引擎的基本使用

使用 Handlebars 模板引擎需要先安装 handlebars 模块,命令如下:

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

安装完成后,在 Node.js 文件中加载 handlebars 模块,代码如下:

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

然后,我们就可以使用 handlebars 模板引擎了。示例代码如下:

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

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

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

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

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

输出结果如下:

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

2. Handlebars 模板引擎的语法

Handlebars 模板引擎的语法与 EJS 模板引擎相似,以下是 Handlebars 模板引擎的常用语法:

  • 输出 HTML:{{ ... }}
  • 输出 HTML(不转义):{{{ ... }}}
  • 条件判断:{{#if ... }} ... {{/if}}
  • 循环:{{#each ... }} ... {{/each}}
  • 局部模板:{{> ... }}

除此之外,Handlebars 模板引擎还支持更为复杂的语法,例如嵌套表达式、Helper 函数等。

四、Pug 模板引擎

Pug 是一款在 Node.js 中运行的模板引擎,它采用了简洁的语法和缩进的方式。Pug 模板引擎在表达视图方面具有很高的灵活性,使用 Pug 可以让我们更加清晰地展现 HTML 代码的结构。

1. Pug 模板引擎的基本使用

使用 Pug 模板引擎需要先安装 pug 模块,命令如下:

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

安装完成后,在 Node.js 文件中加载 pug 模块,代码如下:

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

然后,我们就可以使用 pug 模板引擎了。示例代码如下:

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

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

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

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

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

输出结果如下:

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

2. Pug 模板引擎的语法

Pug 模板引擎的语法比较特殊,它使用空格和缩进的方式来表达 HTML 的结构。以下是 Pug 模板引擎的常用语法:

  • 标签:标签名
  • 标签属性:属性名="属性值"
  • 行内元素:元素名 属性名="属性值" 元素内容
  • 子元素:父元素 子元素
  • 循环:each item in items
  • 条件判断:if condition

除此之外,Pug 模板引擎还支持更为复杂的语法,例如 Mixins、Filters 等。

五、总结

以上是 Node.js 中常用的三种模板引擎的使用方法,包括了 EJS、Handlebars 和 Pug。在选择模板引擎时,我们需要根据实际项目的需求来选择合适的模板引擎。同时,我们还需要学习和掌握模板引擎的基本语法和语法规则,以便更好地使用模板引擎来开发应用程序。

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


猜你喜欢

  • 常见 CSS Reset 库及其优缺点分析

    在进行前端开发时,我们往往需要使用 CSS 样式来设置网页的外观。但是,由于不同浏览器的默认样式不同,我们很难保证在所有浏览器上都能呈现一致的效果。为了解决这个问题,CSS Reset 库应运而生。

    1 年前
  • Hapi 中的 CORS 配置

    跨域资源共享(Cross-origin resource sharing,CORS)是一种浏览器机制,它允许 Web 应用程序从不同的域访问其资源。在开发 Web 应用时,跨域请求是不可避免的问题。

    1 年前
  • 如何解决响应式设计中的图片缩放问题

    随着移动设备的普及,越来越多的网站开始实现响应式设计,以适应不同屏幕大小的设备。在响应式设计中,图片的缩放是一个很重要的问题。如何让图片在不同分辨率的屏幕上显示得尽可能清晰,且不影响网站的性能,是前端...

    1 年前
  • React-Redux 中如何实现异步操作

    React-Redux 是现代前端开发中非常流行的一个框架,它能够让我们方便地对 React 组件进行状态管理和数据流控制。在实际开发中,我们常常需要进行一些异步操作,比如从后端获取数据或者发送网络请...

    1 年前
  • 使用 Node.js 和 Express.js 实现 RESTful 路由

    RESTful API 是现代 Web 开发中应用广泛的一种接口设计,它以标准化的 HTTP 方法(GET、POST、PUT、DELETE 等)来描述对资源的操作,可以提供简单、清晰、灵活、易扩展的接...

    1 年前
  • Web Components 的局限性和解决方案

    引言 Web Components 是一项用于创建可重用和可定制化网络应用组件的 Web 平台 API。Web Components 可以使开发者在 Web 应用的各个层次上复用代码和功能,大大提高了...

    1 年前
  • Angular 中如何使用 HTTP 模块进行数据请求

    简介 在 Angular 中,HTTP 模块提供了一种方便的方式来处理 HTTP 请求。它允许你发送 HTTP 请求和响应,并处理响应数据以及错误。使用 HTTP 模块进行数据请求是开发 Angula...

    1 年前
  • ECMAScript 2020 中的新功能:从 Promise.allSettled 到 BigInt

    ECMAScript(简称 ES)是一种用于编写 Web 前端应用程序的脚本语言标准。每年都会有新版本发布,新版本中包含了许多新的功能和语法特性。在本文中,我们将介绍 ES 2020 中的两个新功能,...

    1 年前
  • 详解 Kubernetes 的 Service 暴露方式

    Kubernetes 是一款非常流行的容器编排系统,其具有高可用、负载均衡、自动化扩缩容等优秀特性,使其成为云原生应用开发的首选工具之一。而 Service 在 Kubernetes 中则是实现负载均...

    1 年前
  • 如何在 Docker 容器中调试 Node.js 应用程序?

    Docker 是一种广泛使用的容器化平台,大大简化了开发者的工作。在容器中运行应用程序可以实现快速部署和可移植性,但在调试应用程序时可能会遇到一些难题。 本文将介绍如何在 Docker 容器中调试 N...

    1 年前
  • AngularJS+Webpack 构建 SPA,如何解决依赖项冲突问题?

    在前端开发中,很多项目都是采用 AngularJS 框架进行构建的。而在打包和构建时,常常会出现依赖项冲突的情况。这时候,Webpack 作为一个强大的打包工具,可以帮助我们解决这个问题。

    1 年前
  • JS 异步编程模型之 Promise 对象

    在前端开发中,异步编程是一种必不可少的方式,因为它可以避免阻塞主线程,提高程序的响应速度和性能。然而,异步编程也具有一些难以理解和管理的缺点,例如:回调地狱、代码冗余和错误处理问题等。

    1 年前
  • ES10 中数组中取不重复元素的技巧及解决方式

    随着 JavaScript 的发展,新的技术和语言特性不断涌现。ES10 是 JavaScript 的最新标准,其中包含了许多便利的功能,其中之一便是提供了一些方法来查询不重复的数组元素。

    1 年前
  • JavaScript 进阶必备:函数绑定的新姿势 ——ES7 bind 运算符(::)

    JavaScript 进阶必备:函数绑定的新姿势 ——ES7 bind 运算符(::) 在开发过程中,我们常常需要将一个函数作为参数传给另一个函数,或者需要绑定 this 的指向。

    1 年前
  • Sequelize 更新操作中的 Bug 以及解决方法

    Sequelize 是一个 Node.js 的 ORM(对象关系映射)库,用于数据库的操作。Sequelize 具有良好的可扩展性和可维护性,非常适合用于构建中大型或者复杂应用程序。

    1 年前
  • 解决 Deno 与 Node.js 不兼容的问题

    众所周知,Node.js 是目前最流行的 JavaScript 后端技术,而 Deno 则是一个新的 JavaScript 运行时,旨在提供更安全、更简单的开发体验。

    1 年前
  • ES6 中的模板字符串及其常见用法

    在 ES6 中,模板字符串是一个相对于字符串常量更加强大的处理方式,它不仅可以帮助你更方便地组织文字,还可以作为变量的载体,用于拼接动态内容,以便更好地表达前端的代码逻辑。

    1 年前
  • 部署 Serverless 应用可能遇到的常见问题及解决方案

    Serverless 是一种新型的云计算架构,可以高效地部署和运行应用程序,但在部署和维护过程中也可能会遇到一些常见问题。本文将介绍 Serverless 部署的常见问题及其解决方案,并提供示例代码和...

    1 年前
  • SSE 如何进行服务端异常的监管和处理

    SSE 如何进行服务端异常的监管和处理 在 Web 应用程序开发中,客户端和服务端之间的数据通信是必不可少的。服务端推送技术(SSE)是一种在客户端和服务端之间实现实时通信的技术,它使得服务端可以向客...

    1 年前
  • Jest 如何测试 Redux 异步操作?

    在前端开发中,Redux 已经成为了一个非常流行的状态管理工具。而在 Redux 中,异步操作是一个重要的部分,但是测试其异步操作并不容易。本文将介绍如何使用 Jest 在 Redux 中测试异步操作...

    1 年前

相关推荐

    暂无文章