我使用NodeJS和Socket.io从数据库中获取数据。我现在想用这些数据填写谷歌区域图表,但我有点失败。 数据以Objects
传输。每个Object
包含两个值(日期时间和值)。我这些值追加到一个数组,然后将它们存储在DataTable
:使用Socket.io填充谷歌区域图 - 'google.visualization.DataTable不是构造函数'
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;
}
如果我把我的网站,我看到图表但没有任何价值和错误消息`google.visualization.DataTable不是constructor' 。那么我做错了什么?
现在我得到错误'io'没有被定义,并且找不到文件'C:\ socket.io \ socket.io.js'。这可能是真的,因为'socket.io'被放置在我的目录中的'node_modules'文件夹中,其中'npm'保存了它的所有模块。 – binaryBigInt
我在做这个确切的whay,因为它在这里描述:http://stackoverflow.com/questions/8689877/cant-find-socket-io-js – binaryBigInt
如果你删除一切_google charts_相关的,你能够得到来自'socket.io'的数据?如果是这样,您可能需要切换事物顺序,获取数据,然后加载_google_。如果不是,这可能是另一个问题的话题......? – WhiteHat