How do I create a Blob in Node.js?

Leo*_*Leo 2 javascript blob node.js

I have tried to create a Blob in Node.js. First just this:

var b = new Blob(['hi', 'constructing', 'a', 'blob']);
Run Code Online (Sandbox Code Playgroud)

This fails with ReferenceError: Blob is not defined

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

var Blob = require('blob');
var b = new Blob(['hi', 'constructing', 'a', 'blob']);
Run Code Online (Sandbox Code Playgroud)

这失败了 TypeError: Blob is not a constructor

我该怎么做?

T.J*_*der 5

Node.js没有Blob,它使用Buffer不要混淆ArrayBuffer)和类型化数组

blob npm您尝试使用的模块不在Node.js中使用,而是在浏览器中使用,以消除Blob在不同浏览器中创建方法的历史差异。从它的描述

一个跨浏览器 Blob即回落到BlobBuilder适当的时候。如果两者都不可用,它将导出undefined

(我的重点)

令人困惑的是,npm在过去几年中,以浏览器为目标的程序包已经出现(成批出现)。require一段时间以来,使用模块一直是诸如Webpack,Rollup等打包程序的功能,因此人们开始将其npm用于浏览器的通用模块,就像将其用于Node.js的通用模块一样。实际上,有些模块是在两种环境下均可工作的。(但blob似乎不是其中之一。)

在评论中,您说过要从Node.js进程上载文件。您不需要这样做Blob,这样做Node.js的方式与在浏览器中的方式不同。因此,您可能想研究如何从Node.js上传文件,而不必担心Blobs。但是,那将是一个不同的问题。(一个可以在这里回答或者,如果您愿意使用Express,请在这里回答。)

  • @Leo - 我不这么认为。他们刚刚开发了`Buffer`,这就是他们所需要的,然后类型化数组出现了,所以...... (2认同)