nodejs обрабатывает массив буферов

предположим, я делаю составной запрос приложения/потока октетов с типом ответа как «arraybuffer»… предположим, я получаю это в nodejs и пытаюсь записать ответ в файл. Как я могу справиться с этим, чтобы не повредить содержимое?

Мой текущий подход примерно такой

var req = var req = restler.post(url, opts)
  .on('data', function (data){
    console.log('receiving data...');
    console.log(data);
  }).on('complete', function (data) {
    var buff = new Buffer(data) //this is prolly incorrect, but I can't figure this out at all
    fs.writeFile(file_name, buff.toString('binary'), function(err){
      console.log('done!')
    });

Здесь я записываю содержимое в имя файла. Предположим, я получаю файл Microsoft Word... его получение приводит только к поврежденному файлу. Также для этого используется пакет restler


person mark4284    schedule 18.03.2016    source источник


Ответы (1)


Согласно restler документации, вы можете установить decoding: 'buffer' в opts, и это сохранит двоичные данные нетронутыми. как Buffer вместо строки в кодировке utf8 по умолчанию. Оттуда это просто вопрос передачи буфера непосредственно в fs.writeFile() без вызова buffer.toString().

person mscdex    schedule 18.03.2016
comment
Я ЛЮБЛЮ ТЕБЯ. Я полностью пропустил это из спецификаций - person mark4284; 18.03.2016