Возврат двоичных данных из NodeJS - PullRequest
3 голосов
/ 15 сентября 2011

У меня есть функция ReadBinaryData (), которую я хотел бы создать потоком чтения для чтения двоичных данных и возврата двоичных данных обратно в вызывающую функцию через обратный вызов. Кажется, вы можете сделать это с узлом несколькими различными способами, и я прочитал противоречивую информацию о том, как это сделать. Я думаю, что я должен использовать объект Buffer, но не совсем уверен, как. У меня есть следующее, но это, кажется, не работает правильно. Есть предложения?

function ReadBinaryData(successCallback){               
    var streamHandle = fs.createReadStream("PATH TO FILE",  {encoding: 'binary'});      
    var contentRead = '';       
   streamHandle.addListener('data', function(data) {            
        contentRead += data;                            
    });

   streamHandle.addListener('end', function(data) {                         
        successCallback(contentRead);       
    });     
};

1 Ответ

1 голос
/ 15 сентября 2011

Я использовал буфер nodejs в ветке 5.x. Я бы проверил документы там и прочитал. Есть много новых методов, которые помогут с вашим двоичным потоком. Хотя в следующих версиях бинарный параметр удаляется, поэтому вы можете переосмыслить, что вы делаете и почему.

http://nodejs.org/docs/v0.5.6/api/buffers.html

Вот пример использования буфера, хотя я использую ветвь 5.x для этого кода, есть аналогичный метод, который похож на writeUInt32LE, но для двоичного файла. Есть также соответствующие методы чтения. Если вы не можете использовать ветку 5.x, вы можете просмотреть библиотеки javascript для nodejs и посмотреть, как их метод преобразует строку в нужный вам формат.

  var cur = this.network.ipInt;
  var bcast = this.broadcast.ipInt;
  var addresses = new Buffer((bcast-cur)*10);
  var offset = 0;
  while (cur < bcast){
    cur += 1;
    addresses.writeUInt32LE(cur,offset);
    offset+=10;
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...