Ich benutze NodeJS und Socket.io, um Daten aus einer Datenbank zu erhalten. Ich möchte jetzt ein Google-Bereichsdiagramm mit diesen Daten füllen, aber ich versäume es irgendwie dabei. Die Daten werden als Objects
übertragen. Jede Object
enthält zwei Werte (Datum und Uhrzeit). Ich anfügen, diese Werte zu einem Array und speichern sie dann in ein DataTable
:Verwenden Sie Socket.io, um Google Area Chart zu füllen - "google.visualization.DataTable ist kein Konstruktor"
google.load('visualization', '1', {
packages: ['corechart']
});
google.setOnLoadCallback(drawChart);
var socket = io();
getData();
function drawChart(dataArray) {
var data = new google.visualization.DataTable();
data.addColumn('string', 'DateTime');
data.addColumn('number', 'Value');
for (var i = 0; i < dataArray.length; i += 2) {
console.log(dataArray[0]);
data.addRow([dataArray[i], dataArray[i + 1]]);
}
var chart = new google.visualization.AreaChart(document.getElementById('chart'));
chart.draw(data, {
title: "Data Visualization",
isStacked: true,
width: '50%',
height: '50%',
vAxis: {
title: 'Data v-Axis'
},
hAxis: {
title: 'Data h-Axis'
}
})
}
function getData() {
socket.emit('GET');
socket.on('serverSent', function (data) {
var processedData = processData(data);
drawChart(processedData);
})
}
function processData(data) {
var arr = new Array();
jQuery.each(data, function (index, object) {
arr.push(object['datetime'], parseInt(object['value']));
})
return arr;
}
Wenn ich meine Website nenne ich das Diagramm sehen, aber ohne Werte und die Fehlermeldung `google.visualization.DataTable kein constructor' ist . Also, was mache ich falsch?
Jetzt bekomme ich den Fehler 'io' ist nicht definiert und die Datei' C: \ socket.io \ socket.io.js' kann nicht gefunden werden. Das könnte stimmen, denn 'socket.io' befindet sich in meinem Verzeichnis im Ordner' node_modules', wo 'npm' alle Module speichert. – binaryBigInt
Ich mache es genau wie es hier beschrieben ist: http://stackoverflow.com/questions/8689877/cant-find-socket-io-js – binaryBigInt
Wenn Sie alles entfernen _google Charts_ bezogen, können Sie das bekommen Daten von 'socket.io'? Wenn dies der Fall ist, können Sie die Reihenfolge der Dinge ändern, Daten abrufen und anschließend _google_ laden. Wenn nicht, könnte es ein Thema für eine andere Frage sein ...? – WhiteHat