我使用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