在Node.js中将Blob转换为File对象

3

我正在尝试在nodejs中将Blob转换为File对象。 Blob从我的前端传递到后端,然后我想在后端进行转换。

这是我的当前代码:

前端

var data = {
  "file": file, //this is blob
  "file_name": bucket_string
};

return await axios.post(`/files/upload-file`, data);

后端

const file = new File(data['file'], "tests/" + customer + "/" + sound + ".wav");

目前这会抛出一个错误:

ReferenceError: File is not defined

我该如何在Node.js中正确地转换数据?


请查看此帖子的答案:https://dev59.com/G14d5IYBdhLWcg3wHPc9#31663645 - ErikMichelson
我尝试了上面的@ErikMichelson并得到了这个错误:ReferenceError: File未定义。 - Juliette
没关系,你正在使用的是Node.js而不是浏览器。Node.js没有实现File类。不过,对于文件操作,Node.js集成了fs模块。 - ErikMichelson
1
@ErikMichelson,我要怎样用fs将blob转换成.wav文件对象? - Juliette
你想通过文件对象实现什么目标?如果你只是想将 wav 文件存储到磁盘上,可以查看 fs.writeFile - ErikMichelson
1个回答

0

很抱歉我声望不够,无法评论,所以只能发一篇完整的帖子。在 TypeScript 中,File 是一个接口,但在 node.js(不包括 TypeScript)中并不存在。我没有看到你的代码中有任何关于 TypeScript 的引用,所以可能是因为你没有使用 TypeScript。关于 File 接口的信息,请参考这里的文档。如果不知道你是否在使用 TypeScript,我对 File 接口就无法再多说了。


1
我猜@Juliette不是在寻找TypeScript文件类,而是寻找File的Web实现。然而,这仅适用于浏览器。 - ErikMichelson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接