【发布时间】:2024-01-02 18:55:01
【问题描述】:
到目前为止,我有这个:
const Fs = require('fs')
const Path = require('path')
const Axios = require('axios')
var {Base64Encode} = require('base64-stream');
const url = 'https://unsplash.com/photos/AaEQmoufHLk/download?force=true'
const response = await Axios({
url,
method: 'GET',
responseType: 'stream'
})
response.data.pipe(new Base64Encode())
这个 base 64 对图像进行编码。我们怎样才能把它变成一个字符串。我尝试过这样的事情:
function streamToString (stream) {
const chunks = []
return new Promise((resolve, reject) => {
stream.on('data', chunk => chunks.push(chunk))
stream.on('error', reject)
stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')))
})
}
const result = await streamToString(response.data.pipe(new Base64Encode()))
但它出错了。想法?
【问题讨论】:
-
用
chunks.join("")替换Buffer.concat(chunks).toString('utf8')
标签: javascript node.js stream axios base64