node.js - express 4 : How to upload file to memory (e. g。作为 UTF-8 字符串)而不是磁盘?

标签 node.js file-upload express express-4 multer

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

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

这在 Node.js/Express 中可行吗?

最佳答案

我不知道这个选项在提问时是否可用,但现在肯定可用。 您可以在 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({}) })

关于node.js - express 4 : How to upload file to memory (e. g。作为 UTF-8 字符串)而不是磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25834739/

相关文章:

node.js - child_process.spawn 标准输出成 block 出现

node.js - 为什么建议不要在 Node.js 代码的任何地方关闭 MongoDB 连接?

mysql - 如何将 Azure 应用服务连接到 Azure Database for MySQL 灵活服务器

node.js - Mean Stack 安装在端口 80 或 iis 下

java - 如何使用jsf上传文件?

node.js - 带有 Node 的 Vue-cli

database - 如何一次将 101 个 CSV 文件导入我的 PostgreSQL 数据库?

javascript - 如何检测网站是否允许您上传文件?

session - Backbone、Node、Session 验证,我的方法有效,但请告诉我它是否正确

mysql - 多个控制字段在 Node.js 应用程序中不起作用