D3.jsを使用してデータ/時間を解析したい。そのために、1つの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 v3の一部であったd3.time
プロパティをもう持たないD3v4.2.2が必要です。変更ログによると、 時間形式 は一般的な名前空間のフラット化の対象であり、したがって次のように名前が変更されました。
- d3.time.format↦ d3.timeFormat
- d3.time.format.utc↦ d3.utcFormat
- d3.time.format.iso↦ d3.isoFormat
つまり、d3
が未定義である場合、d3.time
オブジェクトは認識されます。コードをに変更する
var timeFormat = d3.timeFormat('%H:%M:%S %L');
トリックを行う必要があります。
D3モジュールが認識されます。 JSのすべての割り当ては何も返さないため、次の行を実行します
var d3 = require('d3');
返されるようにバインドされています...何もないため、チェックでundefined
(確認のため、var a = 0
コンソールで、undefined
レスポンスも取得します)。関数がモジュールで定義されておらず、モジュールがロードされていないようです。
モジュールのAPIをチェックして、正しい関数を使用していることを確認してください。
L.E.いくつかの問題を解決するために、ここにリンクがあります
https://github.com/d3/d3/blob/master/API.md#time-formats-d3-time-format