【问题标题】:load json file in nodejs/express app into d3将 nodejs/express 应用程序中的 json 文件加载到 d3
【发布时间】:2016-09-25 21:16:57
【问题描述】:

我有一个 express 应用程序,我想将文件夹 public 中的 json-data 加载到 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
        }
    ]
}

【问题讨论】:

  • 您在网络标签中看到了什么?
  • "myData.json 404 xhr d3.min.js:6 1.2 KB 40 ms"。它无法加载。没有找到。我在 Chrome 上激活了 CORS。 @SLaks

标签: javascript node.js express d3.js


【解决方案1】:

确保在d3.json 的第一个参数中指向public 文件夹中,express 静态托管文件的位置。

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

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

【讨论】:

  • 我也试过这个。但事实并非如此。如果我这样做,它会在控制台中显示:“d3.min.js:6 GET localhost:3000/public/myData.json404”
  • 啊,可能是这行app.use(express.static(path.join(__dirname, 'public'))); app.use(express.static('public'));试试改成app.use(express.static(path.join(__dirname, 'public'), { index: 'index.jade' }));
  • 不。在它调用 index.jade 之前。所以,它以前也可以找到它。它还可以加载json文件。但不知何故 d3 并没有注意到它。 ://
  • 啊,该死的...介意张贴myData.json中的数据吗?
  • 哈哈。就是这样!我的 JSON 文件无效。 XD。如果您更改答案并包含有效的 JSON 部分,那么我会选择您的答案作为正确答案!谢谢你给我提示。花了将近一天的时间。 XD
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
相关资源
最近更新 更多