优化之前需要操作服务器文件或者数据库的操作,这次直接用nodejs写get端口响应从聚宽平台获取到的实时交易数据。
以下是服务器端完整代码,已经将数据处理成需要的json文件,通过get请求直接响应到前端。前端是利用vue来开发,实现数据的实时刷新。
const request = require('request');
const express = require('express')
const app=express()
app.use(express.static(__dirname+'/static-1'))
app.get('/test',(req,res)=>{
res.json({name:'jack',age:18,sex:'男'});
})
app.listen(5000,(err)=>{
if(!err) console.log('服务器启动成功')
})
/
var url1 = "https://dataapi.joinquant.com/apis";
var arrPrice = []//价格数据
var requestData = {
"method": "get_token",
"mob": "*****",
"pwd": "******" //密码和账号
};
function updata() {
request({
url: url1,
method: "POST",
body: JSON.stringify(requestData)
}, function (error, response, token) {
var requestData = {
"method": "get_price_period",
"token": token,
"code": "IF9999.CCFX",
"unit": "1m",
"date": "2021-11-11 09:30:00",
"end_date": "2021-11-11 15:30:00",
"fq_ref_date": "2018-12-18"
};
request({
url: url1,
method: "POST",
body: JSON.stringify(requestData)
}, function (error, response, body) {
var arr = body.split('\n')//把字符串转化成数组
//先分离标题
var arrNtitle = arr.splice(1)//只有时间和价格的数组
var arrUsed = []
for (let i = 0, length = arrNtitle.length; i < length; i++) {
arrUsed.push(arrNtitle[i].split(','))
}
// 把时间提取出来变成一个单独数组 并和价格数据一一对应
var arrData = [] //纯时间坐标
arrUsed.forEach(function (el) {//截取时间
arrData.push(el.shift())
})
arrUsed.forEach(function (el) {
let a = []
el.map(function (el) {
a.push(parseInt(el * 10) / 10)
})
let [op, cp, h