15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > Node —— 模板引擎

Node —— 模板引擎

时间:2023-06-07 08:03:01 | 来源:网站运营

时间:2023-06-07 08:03:01 来源:网站运营

Node —— 模板引擎:为了实现一个简易的 BFF 实践demo,需要在 Node.js 提供基础的 SSR 能力。模板引擎作为重要的一部分,现需要针对其进行一下技术预研。

什么是 HTML 模板

所谓模板,是指将一个事物的结构规律予以固定化、标准化的成果,它体现的是结构形式的标准化。 所以 HTML 模板,大致就是要提取了一个 html 网页Dom 结构的字符串,然后我们将获取到的数据注入到模板中,就能获得完整可展示的 HTML 文档

什么是 HTML 模板引擎

web 开发的模板引擎,则是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。

模板引擎需要具备的能力

社区中的模板引擎

以下都是些 Node.js 环境下的模板引擎,后端语言不太了解,列举一二(JAVA => jsp, C# => http://ASP.NET

技术选择

考虑到实践项目重点在于对 BFF 层的设计学习,对模板引擎功能要求不高,不需要这种大而全的模板引擎库,其次这些库引入也需要一些学习成本,于是最后选择自行写一个建议的模板引擎。

简易模板引擎

创建模板

使用了 Node.js 的 vm 内置虚拟机模块来 编译和运行的 JavaScript 代码,从而一定程度上避免 xss。

/** * 创建模板 * @param {string} templatePath 模板路径 * @returns {function} */function createTemplate(templatePath) { templateCache[templatePath] = vm.runInContext( `(function (data) { with (data) { return /`${fs.readFileSync(templatePath, 'utf-8')}/` } })`, templateContext, ); return templateCache[templatePath];}

include 支持

const templateContext = vm.createContext({ include: function (name, data) { const template = templateCache[name] || createTemplate(name); return template(data); }});

源码链接



关键词:引擎,模板

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭