fileReader.readAsArrayBuffer() Node.js 中的等效方法?

fileReader.readAsArrayBuffer() equivalent method in Node.js?

我有一个 File object and I want to pass it to PDF.jsgetDocument 方法。在前端,我会像这样使用 getDocument 方法:

pdfjs.getDocument(fileReader.readAsArrayBuffer(myFileHere))

如何使用 Node.js? I am also using Express.js and Multer 实现上述内容。

我不知道 PDF.js 是否能够在 Node 上 运行,但我们假设它是。

至少 readFile (or readFileSync if you prefer to be obtaining the contents "immediately") procedure available in Node, files may be read into Buffer 个对象,给定文件路径。

如果您查看上面链接的 Buffer 的文档,您还会发现指定这些是 UInt8Array:

的实例

The Buffer class is a subclass of JavaScript's Uint8Array class and extends it with methods that cover additional use cases.

更进一步,UInt8Array class 的对象,也是 TypedArray class (by the same specification that specifies the former), has a property named buffer, which lets you access the, well, underlying buffer1 that is... an ArrayBuffer!

的对象

因此,您应该能够使用以下变体,将带有某些文件内容的 ArrayBuffer 传递给 PDF.js:

pdfjs.getDocument(require("fs").readFileSync("/path/to/file").buffer);

我必须假设您必须按路径读取文件——我假设您的 fileReader 是一个 FileReader,它(与其误导性名称相反)读取 Blob 个对象(而不是文件)-- 并且 Node 没有任何 Blob class 定义! 所以如果你不想通过某些路径读取文件,那么您必须告诉我们您是如何使用 Node 加载文件内容的。

1 不要因为这里到处都是“缓冲区”这个词而责怪我,它一直都是缓冲区,显然——我没有设计任何这些classes ;)