javascript - 如何解决 TypeError : d3. 时间未定义?

标签 javascript node.js d3.js

我想使用 D3.js 解析数据/时间。为此,我创建了一个 javascript 文件并使用 var d3 = require('d3')。 我使用 npm install d3 安装 D3,还尝试了 npm install d3 --save 将其保存在 package.json 文件中:

{
  "name": "school",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "browserify": "^13.1.0",
    "bufferutil": "^1.2.1",
    "d3": "^4.2.2",
    "express": "^4.14.0",
    "guid": "0.0.12",
    "gulp": "^3.9.1",
    "react": "^15.3.1",
    "react-dom": "^15.3.1",
    "reactify": "^1.1.1",
    "utf-8-validate": "^1.2.1",
    "vinyl-source-stream": "^1.1.0",
    "websocket": "^1.0.23",
    "ws": "^1.1.1"
  }
}

但是,我遇到了这个异常:

TypeError: d3.time is undefined

程序代码:

'use strict';

var d3 = require("d3");
var latency_arr = [];
var time_arr = [];
var timeFormat = d3.time.format('%H:%M:%S %L');

module.exports = {
  histogram: function(data) {
    console.log(data);
    return {

      getBin: function() {

        var jsonObject = JSON.parse(data);
        this.time_arr = jsonObject.time;
        for(var i = 0 ; i < this.time_arr.length ; i++){
            temp_time = this.time_arr[i];
            this.time_arr[i] = new Date(timeFormat.parse(temp_time));
        }
        return this.time_arr;
      },

      addValue: function(date, value) {
        return true;
      },

      getValues: function() {
        if(data !== undefined){
            var jsonObject = JSON.parse(data);
            this.latency_arr = jsonObject.latency;
            return this.latency_arr;
        }
      }
    };
  }
};

检查:

> var d3 = require('d3');
undefined

但是 d3 模块在 node_modules 目录中。

为什么它不能识别 d3 模块?我错过了什么?

最佳答案

您需要不再具有 d3.time 属性的 D3 v4.2.2,这是 D3 v3 的一部分。根据更新日志 time formats已受到一般命名空间扁平化的影响,因此重命名如下:

也就是说,它确实可以识别 d3 对象,而 d3.time 是未定义的。将代码更改为

var timeFormat = d3.timeFormat('%H:%M:%S %L');

应该可以解决问题。

关于javascript - 如何解决 TypeError : d3. 时间未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39369789/

相关文章:

javascript - 替换 async-await 到 then

Node.js 提供 HTML 页面和静态内容

javascript - 在特定力布局 D3 中标记节点的问题

javascript - d3 中的并排路径

javascript - Chrome 与 d3 的foreignObject bug?

javascript - 使用 javascript 模数来更新图 block 位置的行

javascript - 如何显示来自 Google Drive API 的缩略图

javascript - 无法使用 Puppeteer 通过选择器进行选择

javascript - 检查是否安装了 piwik 跟踪代码

javascript - 将时间戳从 JSON 模型转换为可读格式