Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Express 4:如何将文件上载到内存(例如作为UTF-8字符串)而不是磁盘?_Node.js_File Upload_Express_Express 4_Multer - Fatal编程技术网

Node.js Express 4:如何将文件上载到内存(例如作为UTF-8字符串)而不是磁盘?

Node.js Express 4:如何将文件上载到内存(例如作为UTF-8字符串)而不是磁盘?,node.js,file-upload,express,express-4,multer,Node.js,File Upload,Express,Express 4,Multer,我有一个Express 4应用程序,需要处理用户上传的数据文件并返回输出。这些文件相对较小(1-2MB),因此我希望将它们直接上载到内存(例如作为UTF-8字符串变量),而不是保存到磁盘 到目前为止,我得到的最接近的是模块及其onFileUploadData事件,但我不知道如何获取数据并将其传递给单独文件中的路由处理程序 Node.js/Express是否可以使用此选项?我不知道在提出问题时此选项是否可用,但现在确实可用。 您可以在multer中将inMemory选项设置为true,这将为您提供

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

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


Node.js/Express是否可以使用此选项?

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

app.use(multer({
    dest: './uploads/',
    inMemory: true
}));
您可以在此处找到multer的所有可用选项:


multer
1.x的更新

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

以下是如何实例化它以将文件存储在内存中:

multer({ storage: multer.memoryStorage({}) })