Node.js 使用https.request将下载的文件转换为base64

Node.js 使用https.request将下载的文件转换为base64,node.js,base64,Node.js,Base64,我正在尝试下载一个图像,并在base64中获取它。这是我到目前为止一直在使用的: let base64Data = 'data:' + file.mimetype + ';base64,'; const req = https.request(options, (res) => { res.on('data', (d) => { const buffer = new Buffer(d).toString('base64'); base64Dat

我正在尝试下载一个图像,并在base64中获取它。这是我到目前为止一直在使用的:

let base64Data = 'data:' + file.mimetype + ';base64,';
const req = https.request(options, (res) => {
    res.on('data', (d) => {
        const buffer = new Buffer(d).toString('base64');
        base64Data += buffer;
    });

    res.on('end', () => {
        console.log(base64Data);
    });
});

req.end();
该文件已下载,但Base64数据格式不正确


我遗漏了什么?

数据
可能会触发多次,这意味着您需要收集所有数据块,并在
结束
处理程序中对它们进行组合和Base64编码(因为串联单独的Base64编码字符串在解码时可能不会产生原始值):


data
可能会触发多次,这意味着您需要收集所有数据块,并在
end
处理程序中对它们进行组合和Base64编码(因为串联单独的Base64编码字符串在解码时可能不会产生原始值):

const req = https.request(options, (res) => {
  let chunks = [];

  res.on('data', (d) => {
    chunks.push(d);
  });

  res.on('end', () => {
    const buffer = Buffer.concat(chunks).toString('base64');
    base64Data += buffer;
    console.log(base64Data);
  });
});