Uncaught TypeError:canvas.selectAll(…).data(…).enter不是d3中的函数

当我尝试运行我的d3代码时,出现了2个错误。

首先是:

无法加载资源:net :: ERR_CONNECTION_REFUSED

第二个:

Uncaught TypeError:canvas.selectAll(…)。data(…)。enter不是一个函数

我正在使用mongoose作为我的ORM,与d3的html和v4的把手。

<p>graph displayed here </p> <script> d3.json("graphdata.json", function (dataArray) { console.log(dataArray); var width = 500; var height = 500; console.log(width); var widthScale = d3.scaleLinear().domain([0, 420]).range([0, width]); var color = d3.scaleLinear().domain([0, 420]).range(["red", "blue"]); var xAxis = d3.axisBottom(widthScale); var canvas = d3.select("p") .append("svg") .attr("width", width) .attr("height", height); var bar = canvas.selectAll("rect") .data(dataArray) .enter() .append("rect") .attr("width", function (d) { return d.age * 10; }) .attr("height", 50) .attr("y", function (d, i) { return i * 50 }) .attr("fill", "blue"); canvas.selectAll("text") .data(dataArray) .enter() .append("text") .attr("fill", "white") .attr("y", function (d, i) { return i * 50 + 24; }) .text(function (d) { return d.name; }); }); </script> 

graphdata.json

 [ {"age":10,"name":"one"}, {"age":20,"name":"two"}, {"age":30,"name":"three"}, {"age":40,"name":"four"}, {"age":50,"name":"five"}, {"age":60,"name":"six"}] 

感谢您的时间。

您的JSON获取失败(ERR_CONNECTION_REFUSED),所以您的dataArray是空的,这导致.data失败。 您应该查看为什么您的graphdata.json无法通过查看Angular / Node / Mongo日志来加载。