假设我创建了一个multipart,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!')
});
这里我将内容写入文件名。 假设我获取了一个微软word文件...获取它只会导致我损坏文件。此外还使用restler包
答案 0 :(得分:0)
根据restler
documentation,您可以在decoding: 'buffer'
中设置opts
,它会将二进制数据保持为Buffer
而不是默认的utf8编码字符串。从那里开始,只需将缓冲区直接传递给fs.writeFile()
而不调用buffer.toString()
。