最近在写node的时候,遇见到的一个问题那就是使用ftp获取图片的时候获取出来是 stream流
首先声明本人第一次开发node所以很多不懂.....(这个研究了好多天,记录一下)
说一下流程: 首先我们获取到的stream流先转换为buffer流,然后在把buffer流转换成base64
首先我们需要把stream转为buffer
function streamToBuffer(stream) {
return new Promise((resolve, reject) => {
let buffers = [];
stream.on('error', reject);
stream.on('data', (data) => buffers.push(data))
stream.on('end', () => resolve(Buffer.concat(buffers)))
});
}
这个函数传的参数就是stream流,调用后使用await等待一下结果,就可以获取到buffer流
let buffer= await streamToBuffer(stream)
let base=buffer.toString('base64')
经过下面两部就转换为base64格式了,就可以直接把 base 返给前端了