【发布时间】:2016-01-14 13:46:19
【问题描述】:
我正在学习 node.js,我想编写一个程序来绘制从 mysql 数据库中获取的数据图。我在 server.js 文件中进行后端处理并在 index.html 中显示结果。因为我是 node.js 和网络编程的新手。我不知道如何获取数据作为 javascript 对象并绘制它的图形。
问题: 我想知道如何将提取到 javascript 对象中的数据发送到图形绘制代码。
这是我的 server.js:
var mysql = require('mysql');
var express = require('express');
var app =express();
var country = [], population = [], gdp = [];
var jsonArray;
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '12345',
database: 'rohan'
});
var queryString = 'SELECT * FROM Country';
// Fetching data from database
app.get('/', function(req, res) {
connection.query(queryString, function(err, rows, fields) {
if(err) throw err;
formatData(rows);
res.send(jsonArray);
console.log(jsonArray);
});
});
function formatData(dataArray) {
for(var i = 0; i < dataArray.length; i++) {
country[i] = dataArray[i].name;
population[i] = dataArray[i].population;
gdp[i] = dataArray[i].GDP;
}
jsonArray = [country, population, gdp];
console.log("in FormatData()...\n");
console.log(jsonArray);
}
app.listen(3000, function() {
console.log("Server listening on port 3000");
});
这是我的 index.html:
<html>
<head>
<title>Chart-mysql demo</title>
<script>
// code to draw graph
$("#clients").bind('ajax:success', function(result) {
console.log("In index.html" + result);
alert(result);
var barData = {
label:result.country,
datasets: [
{
label: '2010 Customers #',
fillColor: '#382765',
populationData:result.population
}
]
};
var context = document.getElementById('clients').getContext('2d');
var clientsChart = new Chart(context).Bar(barData);
});
</script>
</head>
<body>
<h1>Country Demographics</h1>
<script src="Chart.js"></script>
<script src="app.js"></script>
<canvas id="clients" width=500 height=400></canvas>
</body>
</html>
【问题讨论】:
-
所以你已经在客户端收到数据了,问题是如何绘制它?
-
不,我没有在客户端接收数据。
-
我正在接收数据,但我希望数据作为 javascript 对象,以便我可以使用它来由 chat.js 处理
-
你试过关闭 node.js 再打开吗?
-
开玩笑的。我们这里缺少信息,您可能也应该发布
app.js的内容。
标签: javascript html mysql node.js