TypeError,当尝试从Blob或File中使用text()时,text不是函数



我想弄清楚为什么我的node.js express后端使用TypeScript不识别在TypeScript lib.dom.d.ts文件中定义的函数。所讨论的接口/类型是文件/Blob,文件扩展Blob和我试图访问的函数是从Blob接口的text(),从lib.dom.d.ts文件从typescript v3.9.5

interface Blob {
readonly size: number;
readonly type: string;
arrayBuffer(): Promise<ArrayBuffer>;
slice(start?: number, end?: number, contentType?: string): Blob;
stream(): ReadableStream;
text(): Promise<string>;
}

我正在从前端的div生成PDF,然后将PDF作为文件类型发送到后端。

在VSCode中,我可以将我的文件转换为File或Blob,以查看Blob接口中列出的所有只读和函数的智能感知自动完成选项。

尽管如此,当我尝试使用.text()函数时,我的API失败了,声明${variableName}。文本不是函数

我已经尝试更新我的TypeScript v3.9.5每个这个问题并把TypeScript版本设置为我的Workspace版本。

我已经确认传入的数据是通过控制台作为文件类型传入的。在尝试使用text()函数之前记录变量。我还尝试将变量转换为一个文件和一个Blob使用智能感知来完成调用。

我试图擦除我的docker容器,运行我的nodeJS express后端。

多亏了Konrad,我确定问题是NodeJS没有输出${variable} instanceof File/Blob的Blob或文件类型,每种类型都给了我一个文件/Blob未定义错误。看起来VSCode/Typescript错误地暗示它们确实存在。

这是我想出的解决方案

function filePathToBase64(file: string): string {
let bitmap: Buffer = fs.readFileSync(file);
return buffer.from(bitmap).toString('base64');
}

我使用NodeJS的fs,只是读取传入的FormData的文件路径,如/tmp/${random generated path}

欢呼。

最新更新