nodejs 处理数组缓冲区

nodejs handling arraybuffers

假设我做了一个多部分,application/octet-stream 请求,响应类型为 '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 包

根据 restler documentation,您可以在 opts 中设置 decoding: 'buffer',它将保持二进制数据完整无缺,作为 Buffer 而不是默认的 utf8-编码字符串。从那里开始,只需将缓冲区直接传递给 fs.writeFile() 而无需调用 buffer.toString().