У меня есть простой API-интерфейс websocket от api.bitfinex.com/ws, который изменяет поток на рынке BTC/USD. Я пытаюсь сделать это, чтобы обновить простой файл csv, поэтому при получении новых данных из ws для обновления csv. Я стараюсь использовать fast-csv, но безуспешно. Вот мой код узла js:
const WebSocket = require('ws');
const ws = new WebSocket("wss://api.bitfinex.com/ws");
const fs = require('fs');
ws.onopen = function(){
ws.send(JSON.stringify({'event':'subscribe', 'channel':'ticker', 'pair':'btcusd'}))
};
ws.onmessage = function(msg){
var response = JSON.parse(msg.data);
if (response[1] !="hb"){
console.log("Bitfin " + response[7]);
//HERE I need to update existing CSV file,
//for example
//BTC,xxxx
//ETH,xxxx
//two columns, and n rows..
}
};
Итак, любая идея о том, как перетекать в csv (BTCUSD в строке 1 столбца 2, ETH в строке 2 столбца 2 и т.д.),
Мне кажется, что вы должны использовать writeStream
. Что-то вроде того:
const fs = require('fs')
let writeStream = fs.createWriteStream(fileName)
ws.onmessage = function(msg){
//... your code ...
writeStream.write(msg)
}
writeStream.on('finish', () => {
console.log('Finished writing!')
})