Appearance
数据多态化
简单来说,数据多态化,就是将同一份数据静态化为多种形态。可以通过两种方式来实现:
单个模板静态化为多份文件
一个典型的场景是:在 KMS 中配置了一个功能开关,有的地方需要开关的 json 格式,而有的需要一个 yaml 文件。这种情况,只要简单几步即可实现:
在模板中心创建一个模板
勾选部署目标,填写部署路径,比如
/config/[url]
编写
数据函数
jsasync function main(getConfigData, request, utils){ const config = await getConfigData("data-keys", {pure: "items", f: "data"}) return [ { url: "data.json", content: JSON.stringify(config) }, { url: "data.yml", content: utils.json2yaml(config) } ] }
编写
主模板
<%- content %>
保存,即可。模板中心会立刻开始工作,并生成两个静态化文件,一个
data.json
,一个data.yml
多个模板消费同一份数据
并不是所有场景都适用上面的方法,比如,在 KMS 中配置一个协议页面,对于 web前端来说,希望静态化成一个 html 页面,而对于客户端的同学来说,可能需要一个 json 文件而已。
将大量的 html 模板字符串写到 数据函数
中显然不是一个好主意。
此时就可以创建两个模板,获取的都是同一个 KMS 数据源,分别生成需要的静态化文件即可。模板中心可以按照预期正常工作。