我有一个 Koa 应用程序,它的multipart/form-data
文件上传突然停止工作。我现在已经花了 8 个多小时试图找出问题所在。我尝试/验证的内容:
- 不是 Node 6 问题;节点 4(以前可以工作)也会出现同样的问题。
- 已排除版本问题
packages.json
;已针对所有相关软件包的原始工作版本和最新版本进行了测试。 - 在最新的 Chrome 和最新的 Firefox 中发布展览。
- 当使用与浏览器发送的完全相同的标头直接从 Postman 发布时,问题不会出现(除了
Cookie
和Referer
,两者都不能在 Postman 中设置)。 - Koa 包装器koa-better-body和koa-multer 的问题展示。
- 直接使用busboy时出现问题,厉害,甚至多方。
- 类似于人们在这个multer 问题上报告的问题;尝试了所有建议(包括在文件参数之前添加字段参数的远景)无济于事。
- 试图重新创建最小的测试用例来重现,但一直无法。
- 尝试逐行缩减我的应用程序,针对最小的测试用例检查 Babel 输出,直到它们在功能上相同,问题仍然存在于我的应用程序中,但不在测试用例中。
- 所有测试都在同一台服务器上运行,使用相同的浏览器。
调试时,问题的最清晰视图是强大的,在incoming_form.js
. 发生单个data
事件:
然后是一个abort
事件:
之后,浏览器最终会超时。(该文件大于第一个data
事件中接收到的 15 个字节。)
我曾希望通过从 formidabl 切换到 busboy 来快速解决问题,现在我是一个真正的绑定者,因为这个问题需要得到解决,而我已经没有办法解决这个问题了。我试图以我能想到的每一种方式对其进行切片,以我能想到的每一种方式对其进行调试,并且没有编写我自己的多部分解析器(这不是我喜欢的任务),我很快就没有选择了。
有没有人遇到过这个?您对我如何进行调试或生成最小测试用例有任何想法吗?