问题标签 [busboy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1270 浏览

javascript - Node JS - Busboy 检索参数

我现在坚持使用 NodeJS 和 Busboy 进行我的项目。我正在尝试从路由器中检索所有变量并将其发送到控制器。

app.js(路由)

ProductController.js

ProductLogic.js

我的目标是一次处理所有数据。现在我不确定我是否可以用 busboy 实现它。

请帮助我。

提前致谢

0 投票
1 回答
922 浏览

javascript - 可能会与 busboy 一起发出错误?

是否可以使用 busboy 发出错误并进行处理?

例子:

如果我这样做,我会收到以下错误:

我希望能够通过消息发出我自己的错误,然后在错误事件中删除上传的文件。

0 投票
4 回答
5093 浏览

javascript - node.js 限制来自用户的请求数

我正在 node.js 中构建一个应用程序,允许用户使用 express 和 busboy 上传文档。用户可以一次上传多个文档,但总文件大小限制为 20mb。

是否可以防止用户在给定时间内发出多个上传请求?我担心有人可以很容易地编写一个脚本来上传 20mb(每次上传的限制),然后每分钟重复 100 次或大量。最好让用户每 30 秒或每分钟只能上传一次。

0 投票
1 回答
474 浏览

express - Busboy 'filesLimit' 事件未触发

我正在尝试将上传的图像从客户端发送到服务器。我这样做是这样的:

在我正在使用的服务器中Express。然后,要访问服务器上上传的文件,我使用connect-busboy模块:

为了设置上传文件的文件大小限制,我fileSize在 connect-busboy 构造函数中将选项设置为 3 mb:

问题是当我上传大小大于 3 mb 的图像时,filesLimit事件不会触发。更糟糕的是,file此时事件触发并且(!)只有 3 mb 的文件可用。

怎么了?为什么filesLimit事件不触发?谢谢你的帮助!

0 投票
3 回答
558 浏览

node.js - 将 express-busboy 限制在特定路线上

我使用此处存储库中的示例使用 express-busboy 设置文件上传, 这似乎没有使用正常use()语法,所以我对如何实际限制这个中间件有点困惑,所以它只在特定路线上执行,因为它破坏了其他 POST 请求。

这就是我配置它的方式:

0 投票
2 回答
1811 浏览

node.js - 避免对busyboy文件上传大小限制的进一步处理

我正在尝试在 busboy 中设置上传限制。没有上传限制,我可以成功上传文件。

但是当我想在上传文件大小超过要求时重定向时,我意识到代码是异步的,并且文件的写入或上传无论如何都会发生。

我想要做的是,如果限制达到配置值,它应该重定向到页面而不上传文件。我曾尝试使用 Javasript Promise,但它没有帮助。

我的busboy代码是这样的。

在这里,我将文件大小限制指定为 30 MB。但是当我上传一个 40 MB 的文件时,我仍然在控制台中得到“TWOO”,然后是“ONEEE”……这显然是由于这是异步发生,那么解决方案是什么......?

基本上,如果达到限制,我想记录“ONEEE”并重定向,避免将“TWOOO”记录到控制台并避免文件处理。


另外,如果我尝试检查内部 file.on('data' ... of busboy.on('file' ... 我在使用 file.pipe 时会在文件系统上上传不规则的文件大小。

例如,这不能始终如一地工作(当文件为 354 字节或类似时,它将文件显示为 0 字节):

虽然,如果我从 busboy.on('file' 内部删除 file.on('data' ...流被正确写入磁盘,但是没有办法检查文件大小是否超过...。

所以这可以正常工作以将文件写入文件系统......但我无法检查文件大小是否超过允许的限制......

所以我的问题是如何在不执行上传过程的情况下检查文件大小限制和重定向... file.on('data' ... 失败,因为流在​​函数内部损坏...而 file.on('limit ' 被异步调用,因此无法避免首先运行文件写入脚本以避免不必要的上传..

0 投票
1 回答
2334 浏览

node.js - node.js - 流式上传到云存储(busboy,请求)

我是 node.js 的新手。我想要做的是通过我的 node.js 服务器将文件从网络浏览器上传到云存储。

我正在使用“express”、“request”和“busboy”模块。

但是我在服务器上不断收到以下错误。我在这里做错了什么?任何帮助表示赞赏。

0 投票
0 回答
1708 浏览

node.js - createWriteStream 到内存缓冲区并稍后推送到磁盘

我真的在为 connect-busboy 和流式写作而苦苦挣扎。问题是我想做一些文件验证,但如果不先处理数据就无法做到这一点,而且似乎我必须在处理它时将其写入文件。

当数据进入并且我遇到文件大小或文件类型限制等错误时,我拒绝了请求,但文件的一部分已经写入磁盘。我真的很想省略写入直到最后,或者可能将其暂存到内存缓冲区中。

此代码将拒绝无效的文件类型和大小限制,但它始终首先创建写入流并将文件通过管道传输到其中。我真正想做的是移动“file.pipe(fstream);” 进入 file.on('end',... 回调,但这当然不起作用,因为它必须在它进入时写入。所以看起来我需要先将它写入暂存缓冲区,然后在结束将它刷新到一个真实文件。或者我可以写入一个临时文件,并在出错时删除该文件,但这似乎更加hacky和脆弱。对于这个看似常见的问题,最佳实践是什么?

0 投票
1 回答
565 浏览

node.js - 多部分文件上传问题

我有一个 Koa 应用程序,它的multipart/form-data文件上传突然停止工作。我现在已经花了 8 个多小时试图找出问题所在。我尝试/验证的内容:

  • 不是 Node 6 问题;节点 4(以前可以工作)也会出现同样的问题。
  • 已排除版本问题packages.json;已针对所有相关软件包的原始工作版本和最新版本进行了测试。
  • 在最新的 Chrome 和最新的 Firefox 中发布展览。
  • 当使用与浏览器发送的完全相同的标头直接从 Postman 发布时,问题不会出现(除了CookieReferer,两者都不能在 Postman 中设置)。
  • Koa 包装器koa-better-bodykoa-multer 的问题展示。
  • 直接使用busboy时出现问题,厉害,甚至多方
  • 类似于人们在这个multer 问题上报告的问题;尝试了所有建议(包括在文件参数之前添加字段参数的远景)无济于事。
  • 试图重新创建最小的测试用例来重现,但一直无法。
  • 尝试逐行缩减我的应用程序,针对最小的测试用例检查 Babel 输出,直到它们在功能上相同,问题仍然存在于我的应用程序中,但不在测试用例中。
  • 所有测试都在同一台服务器上运行,使用相同的浏览器。

调试时,问题的最清晰视图是强大的,在incoming_form.js. 发生单个data事件:

在此处输入图像描述

然后是一个abort事件:

在此处输入图像描述

之后,浏览器最终会超时。(该文件大于第一个data事件中接收到的 15 个字节。)

我曾希望通过从 formidabl 切换到 busboy 来快速解决问题,现在我是一个真正的绑定者,因为这个问题需要得到解决,而我已经没有办法解决这个问题了。我试图以我能想到的每一种方式对其进行切片,以我能想到的每一种方式对其进行调试,并且没有编写我自己的多部分解析器(这不是我喜欢的任务),我很快就没有选择了。

有没有人遇到过这个?您对我如何进行调试或生成最小测试用例有任何想法吗?

0 投票
0 回答
167 浏览

javascript - Busboy 没有在本地存储图像

我使用Busboy的是在本地存储文件。下面是我的代码:

此代码在普通的单独项目中运行良好。但是当我在我的项目中使用这个中间件时,它会显示一个错误:

我用谷歌搜索但没有找到任何解决方案。请查看此代码并帮助我。

答案将不胜感激。

谢谢