Javascript 将nodejs/express应用程序中的json文件加载到d3中

Javascript 将nodejs/express应用程序中的json文件加载到d3中,javascript,node.js,express,d3.js,Javascript,Node.js,Express,D3.js,我有一个express应用程序,我想将json数据从文件夹public加载到d3(版本4) 我的文件夹结构如下所示: public |-myData.json view |-index.jade app.js 我想用d3加载的json数据: { { "name": "Maria", "age": 30 }, { "name": "Fred", "age": 50 }, { "name": "Francis", "age": 12

我有一个express应用程序,我想将json数据从文件夹
public
加载到d3(版本4)

我的文件夹结构如下所示:

public
|-myData.json
view
|-index.jade
app.js
我想用d3加载的json数据:

{
  {
    "name": "Maria",
    "age": 30
  }, {
    "name": "Fred",
    "age": 50
  }, {
    "name": "Francis",
    "age": 12
  }
}
这是我的index.jade文件:

extends layout
block content
  script(src='javascripts/jquery-3.1.1.min.js')
  script(src='javascripts/d3.min.js')
  script.
    $(document).ready(function() {
      d3.json("myData.json", function(data) {
        console.log("d ", data);
      });
    });
在app.js中,我说我想提供静态文件:

app.use(express.static(path.join(__dirname, 'public')));
app.use(express.static('public'));
在控制台中,它总是说:
d null

更新: 我现在将路径更改为

"d3.json("../myData.json", function(data)"
查看网络选项卡,我可以看到它成功加载了文件。但在控制台中,它仍然会打印“
null

更新2: 这是因为我的JSON数据无效^^

{
    "content": [

        {
            "name": "Maria",
            "age": 30
        }, {
            "name": "Fred",
            "age": 50
        }, {
            "name": "Francis",
            "age": 12
        }
    ]
}

确保指向
d3.json
的第一个参数中的
public
文件夹,该文件夹与express静态承载文件的位置有关

...
d3.json("../myData.json", function(data) {
        console.log("d ", data);
      });
    });

更新:已编辑的答案,用于正确的目录引用。还要确保
myData.json
是有效的json文件!:)

您在网络选项卡中看到了什么?“myData.json 404 xhr d3.min.js:6 1.2 KB 40 ms”。无法分别加载它。没有找到。我在Chrome上激活了CORS@斯拉克斯我也试过。但事实并非如此。如果我这样做,它会在控制台中说:“d3.min.js:6 GET 404”啊,也许是这行
app.use(express.static(path.join(u dirname,'public'));应用程序使用(express.static('public'))尝试将其更改为app.use(express.static(path.join(uu dirname,'public'),{index:'index.jade'})否。在它调用index.jade之前。所以,它以前也能找到它。它还可以加载json文件。但不知怎的,d3并没有注意到这一点/啊,该死的。。。介意发布
myData.json
中的数据吗?哈哈,就是这样!我的JSON文件无效。除息的。如果您更改答案并包含有效的JSON部分,那么我将选择正确的答案!谢谢你给我提示。花将近一天的时间。除息的