在Node.js/Express框架中,将数据传递给d3以呈现图形数据的正确方式是什么?

What is the proper way in Node.js/Express framework to pass data to d3 for rendering graphical data

本文关键字:数据 图形 是什么 方式 d3 Express js Node 框架      更新时间:2023-09-26

我有一个jade文件,我从js文件传递数据到。然后我有jade文件需要一个js文件来处理d3代码。

我不认为这是正确的方法,但我不想从公共js文件中提取数据,因为它对用户是可见的。

如果你对我的问题有点困惑,项目和结构在这里:https://github.com/rdecuir/NodeJSGraphics

我正在努力学习最佳实践和结构,但还没有找到任何有意义的结构化方式,我不想在jade文件中有脚本代码,也不希望数据在我的d3文件中被拉,因为它暴露给用户。

的挑战是,你想使用d3来呈现数据,但不下载数据到浏览器,因为它需要保持专有?如果是,有两个选项:

  • 呈现可视化服务器端,并以图像形式下载
  • 在浏览器中渲染可视化,但只下载必要的数据。

D3可以在Node.js中使用,还有其他很好的理由在服务器端渲染图像,但第一个选项可能比这里需要的更复杂。你希望至少向用户呈现一些数据,这就是你绘制饼状图的原因。

因此,在Node中,服务器查询Mongo,并构建一个最小的数据集,足以绘制饼图,但不包括机密信息。

你可以通过Ajax传递数据到d3(即渲染页面,然后调用数据,例如使用d3.csv())或嵌入数据在模板中(例如传递一个对象到客户端在节点/express + ejs?)