Handlebars 是一种流行的模板引擎,它允许你在应用程序中使用 HTML 模板。Hapi 是一个流行的 Node.js Web 框架,它提供了一种简单的方法来创建 Web 应用程序。在本文中,我们将探讨如何在 Hapi 框架中使用 Handlebars 模板引擎。
安装 Handlebars
在开始之前,我们需要安装 Handlebars。你可以使用 npm 来安装它:
npm install handlebars --save
集成 Handlebars
要在 Hapi 中使用 Handlebars,我们需要使用 vision
插件。vision
插件允许我们在应用程序中使用视图引擎。
-- -------------------- ---- ------- ----- ---- - ---------------------- ----- ------ - ------------------------ ----- ---------- - ---------------------- ----- ---- - ----- -- -- - ----- ------ - ------------- ----- ----- ----- ----------- --- -- -- ------ -- ----- ------------------------ -- ------ -------------- -------- - ---- ---------- -- ----------- ---------- ----- ------- --- ----- --------------- ------------------- ------- -- --------------------- -- -------
在这个例子中,我们已经安装了 vision
和 handlebars
模块,并将其导入到我们的应用程序中。我们还配置了视图引擎以使用 Handlebars。
server.views
方法接受一个选项对象,其中包含以下属性:
engines
:指定我们要使用的模板引擎。relativeTo
:指定视图文件的根目录。path
:指定视图文件所在的目录。
在这个例子中,我们将 relativeTo
设置为 __dirname
,这是当前文件所在的目录。我们还将 path
设置为 views
目录,这是我们所有的视图文件所在的目录。
创建视图文件
现在我们已经配置了 Handlebars,我们可以开始创建视图文件了。视图文件是包含 HTML 和 Handlebars 表达式的文件。
例如,如果我们想要创建一个简单的欢迎页面,我们可以创建一个名为 welcome.hbs
的文件,如下所示:
-- -------------------- ---- ------- --------- ----- ------ ------ ----- ---------------- ------------------------ ------- ------ -------------------- ------- -------
在这个例子中,我们使用了 Handlebars 表达式 {{title}}
和 {{message}}
。这些表达式将被视图引擎替换为我们在路由处理程序中传递的值。
创建路由处理程序
现在我们已经创建了视图文件,我们需要创建一个路由处理程序来呈现它。
-- -------------------- ---- ------- -------------- ------- ------ ----- ---- -------- --------- -- -- - ------ ----------------- - ------ ----- ------ -------- ----- ----------- --- - ---
在这个例子中,我们创建了一个路由处理程序,它将渲染我们之前创建的 welcome.hbs
视图文件。我们还传递了一个对象,其中包含我们想要在视图文件中使用的数据。
运行应用程序
现在我们已经创建了视图文件和路由处理程序,我们可以运行我们的应用程序并查看结果了。要运行应用程序,请使用以下命令:
node app.js
现在,当您访问 http://localhost:3000
时,您将看到一个欢迎页面,其中包含标题和消息。
结论
在本文中,我们介绍了如何在 Hapi 框架中使用 Handlebars 模板引擎。我们讨论了如何安装 Handlebars,如何集成它到 Hapi 中,如何创建视图文件,并创建了一个路由处理程序来呈现它。希望这篇文章对你有所帮助,让你能够更加深入地了解 Hapi 和 Handlebars 的使用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6745686fc1a23897ea9481b7