如何使用Handlebars模板引擎在Node.js和Express.js中

阅读时长 4 分钟读完

Handlebars是一种流行的模板引擎,为前端开发提供了一种构建HTML页面的方式。在本文中,我们将学习如何在Node.js和Express.js中使用Handlebars。

什么是Handlebars?

Handlebars为JavaScript提供了一种快速、灵活并且易于使用的语法,允许开发者创建渲染静态页面或动态数据的模板。Handlebars支持循环、条件语句以及嵌套模板,并允许开发人员创建自己的帮助函数。

安装依赖

首先,需要安装以下依赖:

  1. handlebars:Core Handlebars library
  2. express-handlebars:Handlebars view engine for Express

可以通过以下命令进行安装:

将Handlebars设置为Express.js视图引擎

要在Express.js中使用Handlebars,需要将其设置为视图引擎。在app.js(或其他入口文件)中,添加以下代码:

这会将Handlebars添加到应用程序中的视图引擎列表中,并将默认引擎设置为Handlebars。

创建Handlebars模板

可以通过创建一个.handlebars或.hbs扩展名的文件来创建Handlebars模板。下面是一个简单的例子,演示如何使用内置的变量和块:

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

在上面的示例中,{{title}}{{heading}}是变量,应该从JavaScript对象中获取。{{#if message}}...{{/if}}是一个块,只有当message存在并且不为空时才会呈现。

在Express.js中呈现Handlebars模板

要呈现Handlebars模板,在路由处理程序中调用res.render()方法,指定模板名称和要传递给模板的数据。下面是一个例子:

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

在上面的示例中,我们将标题、标题和消息信息作为数据对象传递到Handlebars模板“home”中。res.render()方法会自动查找views目录(默认配置),并呈现name参数指定的模板(无需包含文件扩展名)。 Handlebars将利用提供的数据对象将HTML页面构建并发送给客户端。

向Handlebars添加帮助函数

Handlebars支持添加自定义帮助函数以扩展其默认功能。下面是一个示例,演示如何添加一个名为uppercase的自定义帮助函数:

在上面的示例中,我们使用registerHelper方法来向Handlebars添加一个名为uppercase的帮助函数。然后,可以在模板中通过以下方式调用该函数:

在上面的示例中,myString是传递给帮助函数的参数。

结论

在本文中,我们介绍了如何在Node.js和Express.js中使用Handlebars模板引擎。我们讨论了

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/672d0e78ddd3a70eb6d9b8e5

纠错
反馈