随着 Web 技术的发展,前后端分离已经成为趋势。然而,对于那些不希望完全分离的项目,服务器渲染和模板引擎仍然是必不可少的。本文将介绍如何在 Hapi.js 中使用 Vision 和 Swig 完成 HTML 模板渲染。
Hapi.js
Hapi.js 是 Node.js 的一个 Web 框架。它具有强大的路由、请求响应生命周期控制、输入验证、以及扩展可插拔性等特性。使用 Hapi.js 可以轻松构建高质量的 Web 应用程序。
Vision
Vision 是 Hapi.js 的一个视图渲染插件。它能够将各种模板引擎整合到 Hapi.js 项目中。Vision 支持多种模板引擎,如 Handlebars 和 EJS 等。在本文中,我们将使用 Swig 模板引擎。
Swig
Swig 是一个快速、灵活、可扩展的 Node.js 模板引擎。它使用类似于 Django 的语法。
必要的依赖项。请先安装这些依赖项:
$ npm install hapi swig vision --save
配置插件
在 Hapi.js 项目中注册插件非常简单。只需在服务器实例上调用 server.register
即可:
// 省略其它代码 await server.register([ require('vision') ]);
配置模板引擎
下一步是配置模板引擎。在注册模板引擎之前,我们需要设置模板引擎的默认文件扩展名。在这里,我们将其设置为 .html
:
-- -------------------- ---- ------- -- ------ -------------- -------- - ----- --------------- -- ----------- -------------------- --------- ----- --- --- -- ------
这段代码使用 server.views
方法注册 Swig 引擎。我们使用了 html
扩展名,并将模板引擎的位置设置为 ./views
目录。
创建处理程序
现在我们已经完成了插件和模板引擎的配置,下一步是实际创建处理程序。这个例子中,我们将创建一个处理程序,返回一个包含 name
变量的 test.html
模板。
server.route({ method: 'GET', path: '/', handler: (request, h) => { return h.view('test', { name: 'world' }); } });
这段代码创建一个路由,在访问根路径时返回 test.html
模板。打开 test.html
文件,将变量插入到 <h1>
标签中:
-- -------------------- ---- ------- --------- ----- ------ ------ ------------------- ------- ------ ---------- -- ---- -------- ------- -------
运行服务器
最后一步是启动服务器:
server.start().then(() => { console.log(`Server running at: ${server.info.uri}`); }).catch((err) => { console.log(err); process.exit(1); });
现在,在浏览器中访问服务器地址,就可以看到一个包含 Hello, world!
文本的网页了。
总结
本文介绍了如何在 Hapi.js 中使用 Vision 和 Swig 完成 HTML 模板渲染。我们安装了必要的依赖项、注册了 Vision 插件、配置了 Swig 模板引擎、创建了处理程序并启动了服务器。本文涵盖了从入门到实践的全过程,对于想要学习 Hapi.js 视图渲染插件的人来说,无疑是一个很好的教程。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64b3cdfc48841e9894009908