繁体   English   中英

根据 JSON 文件生成页面

[英]Generate pages based from a JSON file

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

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

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

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

我读过其他计算器,但它们没有解决我的问题。

非常感谢。

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

因此,您可以使用 express(使用 npm 安装)和 handlebars(也使用 npm 安装)使用res.render('views/nameOfYourFile.hbs')从后端渲染 render.hbs 文件

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

但是,如果您真的想使用 ajax 从您的后端获取数据,那么只需在您的页面上运行一个script ,获取window.location (当前 url),使用 GET 以便使用该 url 进入您的后端并使用 res.send( ) 在您的后端 function 中发送该 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 () function,您可以从那里呈现获取的数据。 这是一个演示,您必须考虑与安全相关的内容以及您没有找到结果的情况

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM