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

标签 javascript node.js express d3.js

我有一个 express 应用程序,我想将文件夹 public 中的 json 数据加载到 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 文件! :)

关于javascript - 将 nodejs/express 应用程序中的 json 文件加载到 d3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39691930/

相关文章:

javascript - 有没有办法可以根据用户事件(例如评论)增加模型中的值?

express:扩展 Express.Request 的项目本地中间件

javascript - 提交表格时保存签名

node.js - NodeJS - Mongoose(对象没有方法 "id")

node.js - TypeScript Express 错误处理程序参数

javascript - 带有回调和简化错误处理的 Coffeescript

javascript - 在 typescript 中访问类属性

javascript - 如何向切换添加过渡?

javascript - 可观察的主题事件监听器

javascript - 在 Firebug 控制台中运行 jQuery 调用