d3.js:在Angular应用程序和node.js上运行相同的代码

Eug*_*y89 5 javascript node.js d3.js typescript angular

我需要在Angular 5应用中添加一些图表。我为此选择了d3.js。我还需要能够导出图形,即使用Node制作SVG并将其包装在PDF中。

幸运的是,制作使浏览器中的d3图形在node.js上运行的代码非常简单。以下几行做到了...

const { JSDOM } = jsdom;
const { window } = new JSDOM();
const { document } = (new JSDOM('')).window;
global.document = document;
Run Code Online (Sandbox Code Playgroud)

之后,只需要对在浏览器中可用的代码进行少量更改即可。

显然,我不希望有2个几乎相同的代码副本,因此我需要一种方法来在angular应用程序端和节点应用程序上组织创建SVG的函数的使用(如果不是Typescript,我更愿意使用它)侧。不幸的是,我在Node上没有太多的经验,也没有一个简单的解决方案。

这是我的问题...

  1. 如何通过angular 5应用程序和node.js应用程序简单地组织使用d3创建SVG的功能的使用?
  2. 也许用node渲染d3.js并不是最好的解决方案,还有另一个更简单的解决方案?

先感谢您!

Sac*_*pta 1

如果你想在服务器端执行此操作,你可以使用一个 api 来生成图形并返回元素。您可以直接将其插入 UI 中,也可以使用相同的功能来生成 PDF。