【发布时间】:2021-01-04 08:57:00
【问题描述】:
我有一个字符串形式的 svg。我想将该字符串转换为文件并通过FormData 将其发送到另一个 API。
我找到了一种工作方式,其中包括在本地创建一个文件(使用fs),然后从刚刚创建的文件中创建一个readStream。处理许多文件,这非常慢,并且大部分时间都以超时结束。
fs.writeFile('file.svg', svgString, async () => {
const fr = fs.createReadStream('file.svg');
const formData = new FormData();
formData.append('media', fr);
const response = await Axios.post(route, formData, {...}
});
});
这是我使用 Buffer 和 Readable 的(失败的)方法:
// Create readable from svg string
const b = Buffer.from(svgString, 'utf-8');
const r = Readable.from(b);
const formData = new FormData();
formData.append('media', fr);
const response = await Axios.post(route, formData, {...});
此方法与第一种方法的结果不同。 然后我从外部 API 收到一个错误。
问题是如何在不将本地文件写入磁盘的情况下获得与第一种方法相同的结果。
提前致谢!
【问题讨论】:
标签: node.js buffer fs node-streams