parsetime examples ejemplos javascript node.js d3.js d3v4

javascript - examples - Cómo resolver TypeError: d3.time no está definido?



d3.time.format v4 (2)

El módulo d3 es reconocido. Cada asignación en JS no devuelve nada, por lo tanto, ejecuta la línea

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

está obligado a devolver ... nada, por lo tanto, lo undefined en su verificación (para asegurarse, solo escriba var a = 0 en su consola, también obtendrá una respuesta undefined ). Parece que la función no está definida en el módulo, en lugar de que el módulo no se haya cargado.

Debe verificar la API del módulo para asegurarse de que está utilizando la función correcta.

LE ahorrándole algunos problemas, aquí está el enlace

https://github.com/d3/d3/blob/master/API.md#time-formats-d3-time-format

Quiero analizar datos / tiempo usando D3.js. Para ese propósito creé un archivo javascript y uso var d3 = require(''d3'') . npm install d3 D3 usando npm install d3 , y también probé npm install d3 --save que lo guarda en el archivo 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" } }

Sin embargo, estoy enfrentando esta excepción:

TypeError: d3.time is undefined

código de programa:

''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; } } }; } };

Comprobación :

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

Pero el módulo d3 está en el directorio node_modules.

¿Por qué no reconoció el módulo d3? ¿Qué me estoy perdiendo?


Está requiriendo D3 v4.2.2 que ya no tiene una propiedad d3.time , que era parte de D3 v3. De acuerdo con el registro de cambios, los formatos de tiempo han estado sujetos al aplanamiento del espacio de nombres general y, por lo tanto, han sido renombrados de la siguiente manera:

Dicho esto, reconoce el objeto d3 , mientras que el tiempo d3.time no está definido. Cambiando tu código a

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

debería hacer el truco.