Необходимо обновить файл CSV из потока websocket с помощью узла js

1

У меня есть простой 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 и т.д.),

Теги:
csv
websocket
streamwriter

1 ответ

0

Мне кажется, что вы должны использовать 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!')
  })

Ещё вопросы

Сообщество Overcoder
Наверх
Меню