根据 JSON 文件生成页面

Generate pages based from a JSON file

我有一个 JSON 文件,其中包含有关该文件中每个人的信息(姓名、简历、照片等...)。

我想知道什么技术可以让我从那个 JSON 文件中的人生成网页:例如,如果 url 是 site.com/person/steve 那么它会找到名字steve 在 JSON 中显示关于史蒂夫的信息(姓名、简介、照片等...)。

最好我能够制作一个 persontemplate.html 并且任何技术都可以通过抓住 URL 并在 JSON 中找到匹配项来填充相关部分。

我目前的系统使用 JS 和 node.js 所以如果我能保持在这些范围内那很好但不是必需的。

我已经阅读了其他计算器,但它们没有解决我的问题。

非常感谢。

我不确定将 ajax 与节点一起使用来呈现视图有什么意义?它比使用模板引擎更复杂?

所以你可以使用 express(用 npm 安装它)和 handlebars(也用 npm 安装)从你的后端渲染 .hbs 文件 res.render('views/nameOfYourFile.hbs')

如果您不想使用 handlebars,您也可以使用 jade,它是 express 的默认模板引擎。

但是,如果您真的想使用 ajax 从后端获取数据,那么只需在您的页面上 运行 一个 script,它会得到 window.location(current url),使用 GET,以便使用 url 进入后端,并在后端函数中使用 res.send() 来发送 json 数据。但它比使用 express 复杂得多......这取决于你到底想做什么。

有了这个html

<div id="root"></div>

有这个脚本

// Sample data, in real app you probably load this data using an import

const data = [
  {
    name: "Ada",
    surname: "Wong",
  },
  {
    name: "Leon",
    surname: "Kennedy",
  },
];

function render() {
  const { name, surname } = getPerson();

  document.querySelector("#root").innerHTML = `
      <table>
          <tbody>
              <tr>
                  <td>Name</td>
                  <td>${name}</td>
              </tr>
              <tr>
                  <td>Surname</td>
                  <td>${surname}</td>
              </tr>
          </tbody>
      </table>`;
}

function getPerson() {
  const location = document.location.search.substring(1);
  const searchParams = new URLSearchParams(location);
  const name = searchParams.get("person");

  return data.find((entry) => entry.name === name);
}

render();

您可以尝试从 url 中获取您要查找的数据,查看示例中的 getPerson () 函数,您可以从那里呈现获取的数据。这是一个演示,你必须考虑什么是关系到安全和你没有找到结果的情况