通过HTML加载D3模块与节点需求声明

时间:2017-09-10 04:05:15

标签: javascript node.js d3.js electron

问题

执行以下代码会产生不同的结果,具体取决于模块的加载位置。

d3.tsv("data.tsv", function(error, data) {
  if (error) throw error;
  console.log(data);
}

在html文件中加载D3库时,使用以下脚本标记

<script src="node_modules/d3/build/d3.js" type="text/javascript"></script>

以上示例中的文件data.tsv中的数据按预期导入变量data

从节点终端(REPL)或脚本导入库时,如下所示,data的内容最终成为三个对象数组,其中所有对象都包含Error: connect ECONNREFUSED 127.0.0.1:80

let d3 = require('d3');

d3.tsv("data.tsv", function(error, data) {
  if (error) throw error;
  console.log(data);
}

声明

这是一个Electron应用程序,问题出现在渲染过程而不是主要过程。 D3用于组织UI。下面的浏览器安全性write up解释了如何通过在本地托管文件(如使用本地Web服务器或使用Electron API到access local files)轻松解决此问题。

问题

如上所述,D3文档团队解释了browser security limits file access ,但这两个导入之间的功能差异是什么?为什么它以单向而不是另一种方式工作?

0 个答案:

没有答案