gpt4 book ai didi

javascript - 如何在 Node.js 中创建 Blob?

转载 作者:搜寻专家 更新时间:2023-11-01 00:27:36 26 4
gpt4 key购买 nike

我尝试在 Node.js 中创建一个 Blob。首先是这个:

var b = new Blob(['hi', 'constructing', 'a', 'blob']);

失败并返回 ReferenceError: Blob is not defined

然后我尝试使用 blob 模块(这两行代码来自该模块的示例,请参阅 https://www.npmjs.com/package/blob ):

var Blob = require('blob');
var b = new Blob(['hi', 'constructing', 'a', 'blob']);

失败并返回 TypeError: Blob is not a constructor

我该怎么做?

最佳答案

Node.js has experimental Blob support now ,自 v14.18/v15.7.0 以来,这是将 Web API 引入 Node.js 的持续努力的一部分,因此代码可以重用而无需重写。


Node.js 不习惯Blob,它使用Buffer (不要ArrayBuffer 混淆)和 typed arrays .

您尝试使用的 blob npm 模块不是用于 Node.js,而是用于浏览器,以消除您使用方式的历史差异在不同的浏览器中创建 Blob。来自 its description :

A cross-browser Blob that falls back to BlobBuilder when appropriate. If neither is available, it exports undefined.

(我的重点)

有些令人困惑的是,过去几年,针对浏览器的软件包一直(成群结队地)出现在 npm 上。使用 require 的模块已经成为 Webpack、Rollup 等打包器的一个特性,有一段时间了,所以人们开始使用 npm 作为浏览器的通用模块,就像使用它一样用于 Node.js 的通用模块。事实上,一些模块被编写为在任一环境中工作。 (但是 blob 似乎不是其中之一。)

在评论中,您说过要从 Node.js 进程上传文件。为此,您不需要 Blob,您在 Node.js 中执行此操作的方式与您在浏览器中执行此操作的方式不同。所以你可能想研究如何从 Node.js 上传文件,而不用担心 Blob。不过,那将是一个不同的问题。 (可能会回答 here 或者,如果您愿意使用 Express,则回答 here。)

关于javascript - 如何在 Node.js 中创建 Blob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53637644/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com