20.mysql到echarts

一、創建數據表
在Navicat Premium打開test數據庫,新建echarts表,字段爲id、title、value。
在這裏插入圖片描述
雙擊echarts表,向其中添加數據。
在這裏插入圖片描述
二、創建文件
在VScode中新建20文件夾,其中有server.js文件和static文件夾,static文件夾下面有index.html文件和從前面章節複製來的ajax.js、echarts.min.js文件。
在這裏插入圖片描述
給server.js敲入代碼,其中listen(80)爲監聽80端口,瀏覽網址可以省略冒號及其後面的80端口號。

var http = require('http'),
    fs = require('fs'),
    mysql = require('mysql'),
    url = require('url')
var con = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    database: 'test',
    password: '123456'
})
con.connect()
http.createServer(function (req, res) {
    var urls = url.parse(req.url, true)
    switch (urls.pathname) {
        case '/':
            static('/index.html', res, 'text/html')
            break;
        case '/ajax.js':
            static('/ajax.js', res, 'application/x-javascript')
            break;
        case '/echarts.min.js':
            static('/echarts.min.js', res, 'application/x-javascript')
            break;
        case '/echarts':
            mysql_query('select * from echarts', res)
            break;
        default:
            res.end()
            break;
    }
}).listen(80)
console.log('http://127.0.0.1')
function static(pathname, res, type) {
    fs.readFile('./static' + pathname, function (err, results) {
        res.writeHead(200, { 'Content-Type': type })
        if (err) {
            res.write('404')
        } else {
            res.write(results)
        }
        res.end()
    })
}
function mysql_query(sql, res) {
    con.query(sql, function (err, results) {
        res.writeHead(200, { 'Content-Type': 'application/json;charset=UTF8' })
        if (err) {
            res.write('SQL錯誤')
        } else {
            res.write(JSON.stringify(results))
        }
        res.end()
    })
}

給index.html敲入代碼,其中option的dataset是4.0版本echarts的功能,可以設置json數組作爲圖表數據源,配合series下面的encode: { x: ‘’, y: ‘’ }設置x軸和y軸呈現json數據項的key鍵的值。

<!DOCTYPE html>
<html>
<head>
    <meta charset='UTF-8'>
    <title>index</title>
    <script src="ajax.js"></script>
    <script src="echarts.min.js"></script>
</head>
<body>
    <div id="main" style="width:400px;height:300px;"></div>
    <script>
        var myChart = echarts.init(document.getElementById('main'));
        var option = {
            dataset: { source: [] },
            xAxis: { type: 'category' },
            yAxis: {},
            series: [{
                type: 'bar', barWidth: '40%',
                encode: { x: '', y: '' }
            },]
        }
        var host = 'http://127.0.0.1/'
        ajax({
            type: 'get',
            url: host + 'echarts',
            data: {},
            success: function (results) {
                option.dataset.source = JSON.parse(results)
                option.series[0].encode = { x: 'title', y: 'value' }
                myChart.setOption(option);
            },
            error: function (err) { }
        })
    </script>
</body>
</html>

20文件夾下node server,瀏覽器打開http://127.0.0.1(不用輸入端口號)
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章