2

我有一个 Express 4 应用程序,它需要处理用户上传的数据文件并返回一个输出。这些文件相对较小(1-2 MB),所以我想将它们直接上传到内存(例如作为 UTF-8 字符串变量)而不是将它们保存到磁盘。

到目前为止,我得到的最接近的是multer模块及其onFileUploadData事件,但我不知道如何获取数据并将其传递给单独文件中的路由处理程序。

这对 Node.js / Express 可行吗?

4

1 回答 1

6

我不知道这个选项在提出问题时是否可用,但现在肯定是。您可以在 multer 中将 inMemory 选项设置为 true,这将为您提供一个缓冲区对象。喜欢这个:

app.use(multer({
    dest: './uploads/',
    inMemory: true
}));

您可以在此处找到 multer 的所有可用选项:https ://github.com/expressjs/multer#options


multer 更新1.x

Multer 版本 1.0.0 引入了存储引擎的概念,并附带了两个默认引擎:DiskStorageMemoryStorage.

这是您可以实例化它以将文件存储在内存中的方式:

multer({ storage: multer.memoryStorage({}) })
于 2014-11-15T23:08:00.020 回答