Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.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 如何在ExpressJS 4.x中上载文件_Node.js_Express - Fatal编程技术网

Node.js 如何在ExpressJS 4.x中上载文件

Node.js 如何在ExpressJS 4.x中上载文件,node.js,express,Node.js,Express,我知道有些东西像,而且可怕。我想知道是否有机会在没有它们的情况下上传文件。如果你想上传文件,你需要能够解析多部分内容。您可以使用来解析它,也可以实现自己的。下面列出了可以帮助您的模块: 直接解析(根据截至2016年11月的Github stars,受欢迎程度呈下降趋势): 中间件: -基于巴士男孩,比下面的选项更受欢迎 -2014年4月最后一次提交 -建议不要在Github页面上使用 两者: -最后提交日期:2015年1月 如果您想编写自己的解析器,可以看看上面的模块是如何实现

我知道有些东西像,而且可怕。我想知道是否有机会在没有它们的情况下上传文件。

如果你想上传文件,你需要能够解析多部分内容。您可以使用来解析它,也可以实现自己的。下面列出了可以帮助您的模块:

直接解析(根据截至2016年11月的Github stars,受欢迎程度呈下降趋势):

中间件:

  • -基于巴士男孩,比下面的选项更受欢迎
  • -2014年4月最后一次提交
  • -建议不要在Github页面上使用
两者:

  • -最后提交日期:2015年1月
如果您想编写自己的解析器,可以看看上面的模块是如何实现的。请同时查看以下链接:


愉快的编码。

如果没有它们,解析多部分表单可能很难正确且高效地进行。除非您真的想亲自完成解析多部分的工作(urlencoded表单要容易得多),否则您真的应该坚持使用、等中的一个。

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

您可以自己实现解析多部分/表单数据HTTP请求,这是一个很好的编程练习。然而,如果需要考虑开发时间、可维护性和bug修复,那么现成的库就可以派上用场

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

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


您可能想包括不想使用这些库的理由。@mscdex它们很好,而且易于使用,我只是想知道一些没有它们的方法。有人能帮我解决这个问题吗?非常感谢。截至2016年11月,用于直接解析的顶级模块:节点强大(3376星)、总线男孩(814星)、节点多方(557星)。multer是基于busboy构建的中间件,比列出的busboy或多方中间件更受欢迎。parted已经两年没有更新了。更新了!感谢使用直接解析器和中间件的优缺点是什么?中间件是将直接解析器包装成中间件的。使用中间件更容易。