Node.js multer、multiparty和connect multiparty之间的区别&x2B;Nodejs

Node.js multer、multiparty和connect multiparty之间的区别&x2B;Nodejs,node.js,express,multipartform-data,multer,Node.js,Express,Multipartform Data,Multer,我是新来的 用例: 有一个简单的场景,在角阵面上传XLS文件, 在节点上处理它们,进行一些操作,然后将JSON保存到 Mongo DB 从Angular收到文件后,我正在搜索在节点上解析/处理文件的最佳方式,然后偶然发现了关于这些著名节点模块的文章—multer、multiparty和connect multiparty 每篇文章都解释了如何使用相应的模块,但找不到任何一篇文章告诉在时使用哪个模块 我发现,multer主要用于将文件保存到磁盘存储时,这不足以满足我的使用情况 那么我应该忽略mul

我是新来的

用例:

有一个简单的场景,在角阵面上传XLS文件, 在节点上处理它们,进行一些操作,然后将JSON保存到 Mongo DB

从Angular收到文件后,我正在搜索在节点上解析/处理文件的最佳方式,然后偶然发现了关于这些著名节点模块的文章—
multer
multiparty
connect multiparty

每篇文章都解释了如何使用相应的模块,但找不到任何一篇文章告诉时使用哪个模块

我发现,
multer
主要用于将文件保存到磁盘存储时,这不足以满足我的使用情况

那么我应该忽略multer还是实际使用它呢


我应该在何时实际使用
多方
连接多方

此问题列出了一些选项:

有一些模块可以直接解析各种形式的数据,并在此基础上构建中间件

Github stars直接解析的前三个模块是节点强大(3376)、总线男孩(814)和节点多方(557)

顶级中间件是multer(基于busboy,2515星构建)。connect multiparty有一个提示,建议不要使用它。connect-busboy已经四年没有更新了

基于此,如果您需要Express中间件,我建议使用node、busboy或multer


还要注意,multer有一个MemoryStorage内存存储引擎。

您可以将可用的文件处理库分为三类:它们是独立的还是特定于Express.js的,它们是存储中间文件还是使用流,以及中间文件是存储在临时目录还是内存中

像busboy这样的独立解析器可以与Express.js一起使用,也可以不与Express.js一起使用。另一方面,Express.js中间件通过添加
req.files
来增加请求对象,您可以方便地访问这些文件。有些实现将中间文件存储在临时目录或内存中。另一些允许您访问上传的文件内容流,而无需破坏服务器的内存或硬盘

根据您的情况,提出以下问题,以确定哪个库最适合您

  • 您是否需要Express.js
  • 保存中间文件可以吗,还是要流式处理文件
  • 如果可以保存中间文件,您希望将它们保存在内存中还是硬盘上
然后使用此决策树从最常用的文件上载处理库列表中选择一个。决策树来自以下文章:


你好,西蒙。我知道我参加聚会迟到了,但我是否还在更新和使用?看起来multer现在在其他每一个“图像上传”教程中都很流行。使用起来还安全吗?感谢您,我并没有真正了解这一点,但从外观上看,他们似乎刚刚添加了几个强大的维护人员。我想它会好的。Multer似乎更新得更为定期(上次更新是在19天前),但它是中间件,而不是直接解析器。