提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:王香|2019-03-29 15:02:21.000|阅读 502 次
概述:本文将介绍API的本地服务,从数据库中读取数据以及创建图表。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
在上篇文章中,我们讲到了在Highchart中Cloud API的架构,本文将介绍API的本地服务,从数据库中读取数据以及创建图表。
借助以下模块使用Node.js构建了本地服务器:
myServer代码的第一部分是要求模块:
//express to set the server var express = require('express'); var app = express(); //request to communicate with the highcharts cloud var request = require('request'); //cors to send/receive data in JSON format across domains var cors = require('cors'); //to set the public path where the index.html is saved var path = require('path'); //config-json to store the passwords, API key, etc var config=require('config-json'); //Mongoose to communicate with the database var mongoose = require('mongoose');
创建对象来存储从数据库中获取的数据:
var dataToSendObject = { data: { template: {}, options: { title: { text: "" }, series: [{}] }, settings:{ constructor:"Chart", dataProvider: { csv: "" } } } };
所有凭据都保存在名为config.json的单独文件中:
{ //HCCloud team id "teamID" : 123456, //HCCloud API key "APIKey" : '123456', // MongoBD's username and password "dbCredentials":{ "DBlogin" : 'name', "DBpwd" : '123456', }, //MongoDB database link "BLink" : '123x123x', }
如果您尚未为Highcharts Cloud创建API凭据,请继续执行此操作。你需要得到:
还需要获取数据库凭据:
您可以在API管理页面上找到Highcharts Cloud team ID号。
app.listen()用于启动我们的HTTP服务器,我们使用mongoose模块上的connect方法连接到数据库(mongooose.connect('mongodb://'+ DBlogin +':'+ DBPwd + DBLink);)。
要从MongoDB中检索数据,我需要创建用于Chart模型的模式:
var chartSchema = new Schema({ entity_id: String, title: Object, data: Array });
从技术上讲,需要从数据库中获得的唯一字段是标题和数据,但必须添加code> entity_id,因为mLab默认创建它。 否则,无法正确读取数据。
前端使用Ajax向myServer发送请求,以下是API的说明:
最后三个API路由具有相同的结构,因此让我们聚焦第一个和第二个请求。
所有请求都是通过前端(index.html)发布的。例如,一旦在index.html上单击按钮读取数据,app.js就会使用API路径/readDataFromDB向myServer发送ajax请求。myServer接收请求,并执行我们为该路由设置的处理程序:
app.get('/readDataFromDB', function(reqUp, resUp) { Chart.find({}, function(err, data) { //Data represents the data fetched from the DB if (err) { return resUp.send({ status: err }); } console.log("Read from db: success"); //Copy the title dataToSendObject.data.options.title.text = data[0].title; //Copy the data series dataToSendObject.data.options.series[0].data = data[0].data; //send status resUp.send({ status: "Ok" }); }); });
处理程序使用Chart.find()方法从数据库中获取数据,并将结果存储在dataToSendObject中。 然后将状态结果发送回app.js,前端使用该结果使用id为readDataFromDBLabelTitle的标签显示消息:
查询获取存储在数据库中的所有数据,但只读取和处理第一个元素:
dataToSendObject.data.options.title.text = data[0].title; dataToSendObject.data.options.series[0].data = data[0].data;
单击Send/create图表按钮,使用/sendToHCCloud向myServer执行ajax请求路线。它的请求处理程序如下所示:
app.get('/sendToHCCloud', function(reqUp, resUp) { //Set up request configuration var setChart = { url: '//cloud-api.highcharts.com/team/' + teamID + '/chart/', method: 'POST', headers: { 'x-api-key': APIKey }, json: true, body: dataToSendObject, }; request(setChart, function(err, res, body) { if (!err && res.statusCode == msgCodeOk) { console.log("Create chart on Highcharts cloud:success"); //save the chart id console.log("chart_id: " + body.chart_id); chartID = body.chart_id; resUp.send({ status: res.statusMessage }); } else { resUp.send({ status: res.statusMessage }); } }); });
使用请求与Highcharts Cloud API进行通信。请求有点像后端的Ajax函数 - 它向外部服务器执行HTTP请求。 它接受两个参数 - 配置对象和执行请求时执行的处理函数。
在上面的代码中,使用/ team /:teamID / chart route,它为给定的团队创建一个新图表。 这是一个POST路由,因此在执行请求时正确设置方法/动词非常重要。
另请注意,API密钥是请求的一部分(请参阅setChart对象)。 密钥在请求中设置为特殊标头。 有效负载在body属性上设置。
创建我们的选项对象后,我调用request()函数来执行请求,然后读回图表ID(由Highcharts Cloud生成)和请求状态。
要发送和接收JSON数据,请不要忘记将属性json设置为true。现在,您了解了体系结构以及代码如何工作,是时候进行一些练习了。
遵循以下步骤
1.下载代码
要获取演示应用程序,请转到GitHub上的此链接,然后复制或克隆项目。
然后,转到保存项目的位置,打开文件夹,然后创建config.json文件并添加凭据。
2.安装包
打开终端,导航到下载代码的文件夹,然后键入npm install并按Enter键以安装模块依赖项。要在OSX上打开终端,按命令+空格并写入终端,在Windows上打开一个终端,按Win + R,写入cmd并按回车键。 要导航到终端中的正确文件夹,请写入cd。
3.启动应用
键入以下命令启动服务器:node myServer.js
打开Highcharts Cloud帐户,然后转到“chart/图表”部分以查看应用程序操作的结果。
在Web浏览器中打开一个新窗口或选项卡,然后转到//127.0.0.1:3000。 一次单击一个按钮,等待状态标签更新,然后单击此序列中的下一个按钮:
上述内容就是如何在Highchart中使用应用程序来使用Highcharts Cloud API。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢