Skip to content
本页索引

数据多态化

简单来说,数据多态化,就是将同一份数据静态化为多种形态。可以通过两种方式来实现:

单个模板静态化为多份文件

一个典型的场景是:在 KMS 中配置了一个功能开关,有的地方需要开关的 json 格式,而有的需要一个 yaml 文件。这种情况,只要简单几步即可实现:

  1. 在模板中心创建一个模板

  2. 勾选部署目标,填写部署路径,比如 /config/[url]

  3. 编写 数据函数

    js
    async 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)
            }
        ]
    }
  4. 编写 主模板

    <%- content %>
  5. 保存,即可。模板中心会立刻开始工作,并生成两个静态化文件,一个 data.json,一个 data.yml

多个模板消费同一份数据

并不是所有场景都适用上面的方法,比如,在 KMS 中配置一个协议页面,对于 web前端来说,希望静态化成一个 html 页面,而对于客户端的同学来说,可能需要一个 json 文件而已。

将大量的 html 模板字符串写到 数据函数 中显然不是一个好主意。

此时就可以创建两个模板,获取的都是同一个 KMS 数据源,分别生成需要的静态化文件即可。模板中心可以按照预期正常工作。