亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Highcharts+NodeJS搭建數據可視化平臺示例

2019-11-19 18:10:43
字體:
來源:轉載
供稿:網友

前一段時間完成了一個數據可視化項目,由后臺NodeJS+Highcharts框架進行搭建。下面分享一下整個開發過程的流程,以及使用Highcharts框架的經驗。

一、數據的讀取

由于數據庫使用的是MySQL數據庫,在NodeJS中,可以使用NodeJS中的mysql模塊進行mysql數據庫的相關操作,通過npm安裝即可。

1.數據庫基本配置

為了方便,我們最好先進行一個數據庫連接的基本配置,mysql模塊需要的配置信息如下:

var connection = mysql.createConnection({  host   : '127.0.0.1',  user   : 'root',  password : 'root',  database : 'Your_Database',  port : 3306 }); 

tips:當我們在本地開發時,可以先將線上數據庫中的數據拷貝一部分到本地,如利用php myadmin,然后通過讀取本地數據進行開發。

 2.數據庫連接

我們可以設定,當訪問到某個url后,自動建立mysql連接,代碼如下:

router.get('/test', function (req, res, next) {  var username = req.cookies.username;  if(typeof username === "undefined" || username != "yidianzixun@163.com"){   res.redirect('/');  }else{   if(connection.threadId){    return;   }else{    connection.connect(function(err) {     if (err) {      console.error('error connecting: ' + err.stack);      return;     }     console.log('connected as id ' + connection.threadId);    });   }  } }) 

 注意這里面的驗證。我們這里的項目比較簡單,僅使用cookie做身份驗證。當我們要建立數據庫連接時,首先一定要進行身份驗證,否則任何人發送請求就都可以和我們的數據庫進行連接了,會造成很嚴重的安全隱患。

通過調用mysql中的connect方法,進行mysql數據庫的連接。這里注意,數據庫的連接不能并行,否則會報錯。因此為了安全,我們首先必須要先判斷一下當前是否已經連接了數據庫,這里可以使用connection.threadId判斷其是否定義,從而判斷其是否已經建立連接。如果已經建立了連接,則不要再次建立連接。

 3.執行查詢語句

通過調用query()方法,即可處理語句查詢操作,輸入的內容可以是任何正確的mysql查詢語句,也可以嵌套其他變量,最后只要拼接出一個字符串即可。實例如下:

router.post('/test', function (req, res, next) {  var startDate = req.body.startDate;  var endDate = req.body.endDate;  connection.query('SELECT `date`, COUNT(DISTINCT `idea_id`) AS num,    SUM(`view`) AS view, SUM(`click`) AS click,    SUM(`cost`) AS cost FROM `idea_report_all`    where `date` BETWEEN "' + startDate + '" AND "' + endDate +    '" GROUP BY `date` ORDER BY `date` ASC', function(err, rows, fields) {   if (err) throw err;   var rows = calculate(rows);   res.send(JSON.stringify(rows));  }); }) 

這里我們根據獲取到的開始日期和截止日期,拼接成一個query語句,查詢出我們需要的數據,最后可以在回調函數中調用(rows參數),是一個數組。

 最后,將這個數據反回給前臺即可,前臺進行數據的處理和可視化。

二、HighCharts使用

Highcharts的使用可以在官方API上查看各個方法,而且有在線演示,非常方便(推薦Highcharts中文網)。其中最麻煩的就是要繪制的圖表的配置項所需要的各個參數所組成的對象。建議設定一個構造這個對象的構造器,根據傳入的各個參數構造出對應需要的HighCharts配置項。因為傳入的參數過多,我們要使用對象的形式進行構建。關于HighCharts框架的更多使用,將在以后博客中更新,可以先看一下下面這個構造的例子。

function greateOptions (id, text, xAxisTitle, date, yAxisTitle1, yAxisTitle2, k1,unit1, k2,unit2, series, color, tooltip) {   var data = new Object();   data.chart = {     renderTo: id,   marginLeft: 50,   marginTop: 70   };  data.colors = color;   data.title = {     text: text,     align: "left"   };  data.tooltip = {   crosshairs: true,   shared: true,   useHTML: true,   style: {    padding: 10   },   headerFormat: '<table><tr><td>' + tooltip + ':</td><td>{point.key}</td></tr>',   pointFormat: '<tr><td style="color: {series.color}">{series.name}: </td>' +          '<td style="text-align: left"><b>{point.y}</b></td></tr>',   footerFormat: '</table>'  };  data.noData = {   style: {    fontWeight: 'bold',    fontSize: '15px',    color: '#303030'   }  };  data.lang = {   noData: "正在為您加載數據......"  };  data.credits = {   enabled: false  };   data.xAxis = {     tickPosition: 'outside',   title : {     text: xAxisTitle || ''   },   categories: date   };   data.yAxis = [{     lineWidth: 1,     title: {       text: yAxisTitle1 || ''     },     labels: {       formatter: function(){         return this.value/k1 + unit1;       }     }   },{     lineWidth: 1,     opposite: true,     title: {       text: yAxisTitle2 || ''     },     labels: {       formatter: function(){         return this.value/k2 + unit2;       }     }   }];   data.series = series;   return data; } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色哟哟网站入口亚洲精品| 国产成人午夜视频网址| 91成人在线观看国产| 久久久国产精品免费| 日本乱人伦a精品| 久久国产天堂福利天堂| 亚洲精品久久久久| 久久久久久久成人| 日韩亚洲国产中文字幕| 欧美黄色片免费观看| 国产精品一久久香蕉国产线看观看| 国产精品扒开腿做爽爽爽的视频| 九九热这里只有精品免费看| 日韩电影免费观看在线| 成人女保姆的销魂服务| 国产精品91久久| 黑人欧美xxxx| 国产日韩在线一区| 国产精品日韩在线一区| 亚洲国产另类 国产精品国产免费| 精品久久中文字幕| 色婷婷综合久久久久中文字幕1| 精品国内亚洲在观看18黄| 亚洲色图色老头| 操人视频在线观看欧美| 国产精品福利网站| 国色天香2019中文字幕在线观看| 91极品女神在线| 亚洲国产成人精品女人久久久| 国产精品h片在线播放| 成人激情av在线| 亚洲午夜未满十八勿入免费观看全集| 亚洲欧美国产va在线影院| 久久久久久久久爱| 欧美激情成人在线视频| 国产欧美精品一区二区| 久久精品国产2020观看福利| 欧美国产乱视频| 国产69精品久久久久9999| 黑人精品xxx一区一二区| 午夜精品国产精品大乳美女| 免费91麻豆精品国产自产在线观看| 欧美风情在线观看| 国产精品午夜视频| 亚洲天堂av在线免费| 欧美肥老太性生活视频| 夜夜嗨av色综合久久久综合网| 日韩电影在线观看免费| 亚洲乱码一区二区| 一区二区欧美激情| 91精品视频免费观看| 国产精品激情av在线播放| 欧美日韩中文字幕综合视频| 国产精品人人做人人爽| 日韩欧美亚洲一二三区| 91国产中文字幕| 日韩国产欧美精品一区二区三区| 成人做爽爽免费视频| 日韩电影在线观看永久视频免费网站| 日韩电影大全免费观看2023年上| 国产自产女人91一区在线观看| 国产精品高潮呻吟久久av无限| 深夜福利国产精品| 欧美激情图片区| 久久久久久久国产精品| 91免费看片在线| 国产精品999999| 中文字幕免费国产精品| 97香蕉久久超级碰碰高清版| 国产+人+亚洲| 欧美成人小视频| 久久成人在线视频| 日韩av高清不卡| 欧美精品激情blacked18| 国产精品99久久久久久久久| 成人av电影天堂| y97精品国产97久久久久久| 欧洲美女7788成人免费视频| xxxxx成人.com| 国产精品日韩在线| 91免费版网站入口| 亚洲天堂影视av| 亚洲第一区第一页| 亚洲欧美国产高清va在线播| 日韩视频免费在线观看| 欧美黑人巨大xxx极品| 日韩欧美中文字幕在线观看| 97香蕉超级碰碰久久免费的优势| 在线观看日韩欧美| 日韩在线免费视频观看| 亚洲一区二区三区毛片| 国产精品视频中文字幕91| 亚洲精品美女在线观看| 国产精品第8页| 日本精品一区二区三区在线播放视频| 欧美激情视频一区| 成人欧美一区二区三区黑人孕妇| 国产精品高潮呻吟久久av野狼| 91精品视频免费看| 亚洲成人精品久久| 亚洲毛片一区二区| 超碰97人人做人人爱少妇| 91久久精品美女| 精品久久久久久国产| 国产噜噜噜噜久久久久久久久| 亚洲精品美女久久| 全亚洲最色的网站在线观看| 欧美性xxxxx极品| 日韩欧美在线观看| 国产日韩精品在线播放| 国产在线观看不卡| 久久精品中文字幕| 国产视频久久久| 欧美精品videossex性护士| 97超碰色婷婷| 欧美成人激情在线| 国产成人av在线| 在线观看欧美日韩国产| 91中文精品字幕在线视频| 成人激情视频在线播放| 精品视频在线播放色网色视频| 中文字幕精品www乱入免费视频| 18一19gay欧美视频网站| 国产综合视频在线观看| 国产不卡在线观看| 欧美电影第一页| 亚洲香蕉成人av网站在线观看| 久久久免费av| 欧美日韩性生活视频| 色婷婷综合久久久久中文字幕1| 日韩动漫免费观看电视剧高清| 美女扒开尿口让男人操亚洲视频网站| 亚洲国语精品自产拍在线观看| 久久综合伊人77777尤物| 亚洲成人三级在线| 亚洲精品xxxx| 不卡在线观看电视剧完整版| 91高清视频在线免费观看| 亚洲激情视频网| 亚洲成人精品久久久| 国产亚洲欧美日韩精品| 成人激情在线播放| 国产精品视频一区国模私拍| 欧美日韩免费观看中文| 1769国内精品视频在线播放| 欧美日韩免费区域视频在线观看| 久久久久久高潮国产精品视| 久久夜色精品国产| 久久精品视频在线| 日韩电影免费观看中文字幕| 91经典在线视频| 久久精品一区中文字幕| 欧美—级a级欧美特级ar全黄| 亚洲xxxx3d| 伊人久久五月天| 亚洲美女在线观看| 国产亚洲欧洲高清一区| 日韩一区视频在线| 欧美一区二区三区精品电影| 91亚洲永久免费精品| 成人女保姆的销魂服务| 日韩中文字幕国产精品| 国产精品精品久久久| 欧美洲成人男女午夜视频|