NodeJS:无法将stream/缓冲区转换为base64string

我需要创buildbase64string,我需要发送到第三方API。 我有stream和缓冲区。 表单stream我能够创build一个图像,所以没有办法stream被破坏。 这是两个variables:

var newJpeg = new Buffer(newData, "binary"); var fs = require('fs'); let Duplex = require('stream').Duplex; let _updatedFileStream = new Duplex(); _updatedFileStream.push(newJpeg); _updatedFileStream.push(null); 

无论我尝试什么,我都无法用base64string转换它们。

 _updatedFileStream.toString('base64'); Buffer(newJpeg, 'base64'); Buffer(newData, 'base64'); 

以上都不是。 有时我会得到Uint8Array [arraySize]或者Gibberishstring。 我究竟做错了什么?

使用承诺的例子(但可以很容易地适应其他方法):

 return new Promise((resolve, reject) => { let buffers = []; let myStream = <...>; myStream.on('data', (chunk) => { buffers.push(chunk); }); myStream.once('end', () => { let buffer = Buffer.concat(buffers); resolve(buffer.toString('base64')); }); myStream.once('error', (err) => { reject(err); }); });