【问题标题】:Send data as a response from nodejs server to html page so display it in table format将数据作为响应从 nodejs 服务器发送到 html 页面,以便以表格格式显示
【发布时间】:2021-12-08 13:48:30
【问题描述】:

我是编程新手,我正在尝试使用 nodejs/expressjs 构建一个 Web 应用程序。 所以基本上在 post 路由上,在后端进行一些处理后,它在结果变量中给出了一个 对象数组,我想使用这个结果变量数据并在 html 文件中构造一个 表 并将这个 table.html 文件作为响应发送给客户端

我遇到的问题是如何使用这个结果变量在html文件中动态添加表格元素(因为数组大小每次都会改变)

我使用的方法

  1. 我创建了与同一个 html 文件链接的 table.html 和 table.js。但是当 table.html 作为响应发送时,html 文件和 table.js 文件在客户端呈现并且无法通过我从服务器获得的结果值到该 table.js 文件(我得到一个未定义的文档错误)
  2. 我尝试使用 EJS 模板..如何创建一个使用 ejs 变量循环遍历数组数据并显示表的函数..我无法做到

如果有人可以帮我显示result=[{name:'james', id:23},{name:'joe',id:35}] 以 html 文件作为响应

main.js

app.post('/dataTbale',(req,res) => {
  // after some processing i get array of obj that i store in result variable
  const result=[{name:'james', id:23},{name:'joe',id:35}];
  res.send('table.html);
})

table.html

<html>
  <body>
    <h2>table</h2>
    <div id="show_table"></div>
    <script src="table.js"></script>
  </body>
</html>

table.js

const tableDiv=document.queryselector('#show_tabel');

result.forEach((obj) => {  //<==== i want to pass that result data here.
  tableDiv.innerHTML += result;
});

P.S 只是想知道这是否可行,然后我可以创建表

【问题讨论】:

  • 据我了解,您在服务器端渲染 (SSR) 中想要什么。有很多方法可以做到这一点。您可以查看一些教程以开始使用
  • 我会将构建 html 表的 JS 导入到向服务器发出请求并处理响应的同一文件中。然后我会将响应作为参数传递给您导入的生成/构建表的 javascript 函数。然后该函数将使用新元素更新 DOM(您可以为此使用 DOM api 或像 React 这样的库,它只会在传递某些道具(如行数)后重新呈现组件)。

标签: javascript html node.js html-table frontend


【解决方案1】:

您可以使用类似 (ejs) 的模板引擎或任何其他模板引擎来显示从服务器返回的动态数据,如果您希望在不同的页面中呈现结果,您应该将数据存储在任何像本地存储或数据库这样的存储,以便能够在不同的地方使用它。

【讨论】:

  • 是的,我尝试使用 EJS 和 ``` app.get("/", (req, res) => { const dummylist = [1, 2, 3, 44, 3]; res .render("index", { listvalue: dummylist }); }); ``` ``` index.view 文件 ``` 它正在渲染该值并将其打印在索引页面中,但传递一个对象数组它不起作用
  • 您应该像在此示例中那样将对象数组发送回前端,然后您可以使用其中一种 JavaScript 内置方法(如 (array.map) 来访问该数组中的数据。
  • 有没有什么办法可以从nodejs修改DOM,这样我只需将html文件传递给响应,客户端浏览器就可以显示数据
  • 当然不是,因为 NodeJS 是服务器端的 JavaScript,而 DOM 与客户端相关。
猜你喜欢
  • 2021-06-22
  • 2017-12-15
  • 2019-01-01
  • 2020-10-30
  • 1970-01-01
  • 2013-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多