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