直接上代码
index.js
const Koa = require('koa')
const App = new Koa()
const server = require('http').createServer(App.callback())
const WebSocket = require('ws')
const ws = new WebSocket.Server({ server })
const kline = require('./data')
ws.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
const data = JSON.parse(message)
if (data.type === 'kline') {
if (data.resolution === '1D') {
ws.send(JSON.stringify({ kline: kline, symbol: data.symbol, resolution: data.resolution, type: data.type }))
} else {
createRandomData(ws, data)
}
}
if (data.type === 'updata') {
if (data.resolution === '1D') {
// 一天以及一天以上暂时不做处理
ws.send(JSON.stringify({ ping: Date.now() }))
} else {
// 这里返回最新数据
const num = setRandomValue(2, 2)
ws.send(JSON.stringify({
kline: [
{
time: (parseInt(Date.now() / 10000) + (data.resolution * 6)) * 10000,
open: num - setRandomValue(1),
close: num - setRandomValue(1),
low: num - setRandomValue(1),
high: num,
volume: 2554477 - setRandomValue(6)
}
],
symbol: data.symbol,
resolution: data.resolution,
type: data.type
}))
}
}
})
})
const setRandomValue = (integerNum, decimalNum) => {
let randomNum = Math.random() * Math.pow(10, integerNum) + Math.pow(10, integerNum)
// 整数部分
let integerPart = 0
if (integerNum) {
integerPart = Math.floor(randomNum)
}
// 小数部分
let decimalPart = 0.00
if (decimalNum) {
decimalPart = randomNum.toString().split(".")[1].substring(0, decimalNum)
decimalPart = '0.' + decimalPart
decimalPart = parseFloat(decimalPart)
}
return integerPart + decimalPart
}
const createRandomData = (ws, data) => {
const { symbol, resolution, from, to, type } = data
const list = []
for (let i = 0; i < 1000; i++) {
const num = setRandomValue(2, 2)
const item = {
time: (parseInt(Date.now() / 10000) - (i * resolution * 6)) * 10000,
open: num - setRandomValue(1),
close: num - setRandomValue(1),
low: num - setRandomValue(1),
high: num,
volume: 2554477 - setRandomValue(6)
}
list.push(item)
}
ws.send(JSON.stringify({ kline: list, symbol: data.symbol, resolution: data.resolution, type: data.type }))
}
server.listen(3010, () => {
console.log(`Server listening at port 3010...`)
})
data.js
module.exports = [ { "date": "2015-09-25 08:00:00", "time": 1443139200000, "open": 239.99, "close": 235.2, "low": 234.81, "high": 239.99, "volume": 190090 }, { "date": "2015-09-26 08:00:00", "time": 1443225600000, "open": 235.2, "close": 234.51, "low": 232.91, "high": 235.36, "volume": 258488 } ]
我想实现index.js里面的读取内容 在const kline = require('./data')这里为为data.js里面的json数据,类似这样子的
[ { "date": "2015-09-25 08:00:00", "time": 1443139200000, "open": 239.99, "close": 235.2, "low": 234.81, "high": 239.99, "volume": 190090 }, { "date": "2015-09-26 08:00:00", "time": 1443225600000, "open": 235.2, "close": 234.51, "low": 232.91, "high": 235.36, "volume": 258488 } ]
请问如何实现呢?
我希望把data.js换成data.json文件 然后再在index.js里面使用ajax请求这个json,不是使用data.js 而是想使用data.json 谢谢各位,指点下呗
类似如下
a.js:
console.log('a 开始'); exports.done = false; const b = require('./b.js'); console.log('在 a 中,b.done = %j', b.done); exports.done = true; console.log('a 结束');
b.js:
console.log('b 开始'); exports.done = false; const a = require('./a.js'); console.log('在 b 中,a.done = %j', a.done); exports.done = true; console.log('b 结束');
main.js:
console.log('main 开始'); const a = require('./a.js'); const b = require('./b.js'); console.log('在 main 中,a.done=%j,b.done=%j', a.done, b.done);
https://www.cnblogs.com/feifeifei666/p/7783451.html
– 舒碧 7年前